이번에는, 1 차원 배열 요소의 개수를 구하는 예제를 보여드리겠습니다.


#include <stdio.h>

#define ARR_SIZE 10

int main(int argc, char* argv[]) {
	int arr[ARR_SIZE];
	int totalSize = sizeof(arr);
	int elementSize = sizeof(arr[0]); // or sizeof(int);
	int count = totalSize / elementSize;
	printf("배열 요소의 개수 : %d\n", count);
	return 0;
}


3 라인

배열 요소의 개수를 상수화합니다.


6 라인

배열을 선언합니다. (여기서는 편의상 정수형 배열을 선언하겠습니다.)


7 라인

sizeof(arr) 문장을 통해서 arr 배열의 전체 크기를 byte 로 구해서 totalSize 변수에 대입합니다. arr 배열의 전체 크기는 int 형 (4 byte) 가 총 ARR_SIZE (10) 개이므로 (4 X 10) 40 byte 가 됩니다.  


8 라인

sizeof(arr[0]) 문장을 통해서 arr 배열의 0 번째 요소의 크기를 byte 로 구해서 elementSize 변수에 대입합니다. arr[0] 의 크기는 int 형이므로 4 byte 가 됩니다. sizeof(arr[0]) 대신 sizeof(int) 로 배열 요소 한 개의 크기를 구해도 됩니다.


9 라인

totalSize (40) / elementSize (4) 의 결과를 count 변수에 대입합니다. (40 / 4 = 10) 이것이 배열 요소의 개수가 됩니다. 


10 라인

구한 1 차원 배열 요소의 개수를 출력합니다.


[실행 결과]

by kkikkodev 2017. 5. 22. 17:42