C언어/참고서: C언어 콘서트

C언어 30차시 배열의 초기화, sizeof 연산자

Olivia-BlackCherry 2023. 3. 28. 16:07

목차

    1. 배열의 초기화

    값들을 콤마로 분리하고, 중괄호{ }로 엮어 배열을 선언할 때 대입하면 된다.

    즉, 배열을 선언할 때 배열은 초기화된다.

    int scores[5] = {10,20,30,40,50};

    출처: C언어 콘서트(이하 생략)

     

     

     

    1) 초기값의 개수 > 배열 요소 개수

    --> 불가능하다. 컴파일 오류가 발생.

     

     

    2) 초기값의 개수 < 배열 요소의 개수

    앞에 있는 요소들은 초기화, 나머지 배열 요소는 0으로 추가

     

     

    3) 배열 요소의 개수 없을 때

    배열 요소의 개수, 즉 크기가 없는 경우에는 컴파일러가 자동으로 초기값들의 개수만큼 배열의 크기를 잡는다. 

     

     

    4) 초기값이 없을 때

    아무 의미없는 쓰레기 값이 들어간다.

     

     

    2. sizeof 연산자로 배열 요소 개수 계산

    배열에 들어있는 요소의 개수를 계산하는데 sizeof 연산자를 이용한다. 

    sizeof 연산자는 자료형이나 변수의 크기를 바이트 단위로 계산한다. 

    sizeof  연산자로 배열 전체 크기를 간단히 구할 수 있다. 

     

    -연습문제

    #define _CRT_SECURE_NO_WARNINGS
    #include <stdio.h>
    #define SIZE 5
    
    int main(void)
    {
    	int scores[SIZE] = { 1, 2, 4, 6, 7 };
    	int i, all_size, each_size, size;
    
    	//배열의 모습 보기
    	for (i = 0; i < SIZE; i++)
    		printf("scores[%d]=%d\n", i, scores[i]);
    
    	//sizeof연산자로 각 배열요소의 사이즈 계산하기
    	for (i = 0; i < SIZE; i++)
    		each_size = sizeof(scores[i]);
    	printf("각 배열요소의 사이즈: %d\n", each_size);
    	
    	//sizeof연산자로 전체 배열의 사이즈 계산하기
    		all_size = sizeof(scores);
    		printf("전체 배열요소의 사이즈: %d\n", all_size);
    
    	//sizeof연산자로 배열 요소의 개수 계산하기
    		size = sizeof(scores) / sizeof(scores[0]);
    		printf("배열요소의 개수: %d\n", size);
    
    
    	return 0;
    }