728x90
배열 요소의 개수 계산 방법
sizeof 연산자 : 자료형이나 변수의 크기를 바이트 단위로 계산
sizeof 연산자로 배열 전체의 크기를 구하고 이것을 배열 원소의 크기로 나누게 되묜 배열 원소가 몇개있는지 계산 가능
1
2
3
4
5
6
7
8
9
10
11
12
|
#include<stdio.h>
int main(void)
{
int nums[] = {3, 5, 6, 8, 3, 2};
printf("%d", sizeof(nums));
return 0;
}
>>>24
|
cs |
nums라는 배열을 선언하고 초기화 한다.(원소가 6개 있으므로 배열을 6칸으로 자동으로 잡아줌)
int형으로 배열을 선언했기 때문에 6칸x4바이트 = 총 24바이트 why? sizeof연산자는 바이트 단위로 계산하기때문이다.
그러면 요소의 개수가 몇개인지는 어떻게 계산할 것인가?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#include<stdio.h>
int main(void)
{
int nums[] = {3, 5, 6, 8, 3, 2};
int size;
size = sizeof(nums) / sizeof(nums[0]);
printf("%d", size);
return 0;
}
>>>6
|
cs |
sizeof(nums)로 배열 nums의 크기를 계산해주고 24바이트가 나옴.(4바이트짜리 칸이 6개가 있기 때문에)
sizeof(nums[0])로 첫번째 요소의 크기를 계산하면 4바이트가 나옴.(각 요소마다 차지하는 바이트가 같기때문에 어느 요소로 해도 상관은 없음)
나누면? 6이 나온다. 배열 요소의 개수가 나옴
728x90
'C프로그래밍 > 개인 공부' 카테고리의 다른 글
C언어 - 쉽게 풀어쓴 C언어 express 10장 배열 실습문제(짝수번) (0) | 2022.07.13 |
---|---|
C언어 - 정렬 (0) | 2022.07.06 |
C언어 - 배열과 함수 (0) | 2022.07.06 |
C언어 - 배열의 복사, 비교 (0) | 2022.07.04 |
C언어 - 포인터1, 선언과 초기화 (1) | 2022.05.25 |