-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
해결됨
배열의 크기에 대한 질문이요
23.08.08 22:36 작성 조회수 133
1
int a[3];
cout << sizeof(a) <<endl;
cout << sizeof(a[3]) <<endl;
이 둘의 출력결과가 다른이유는 무엇인가요??
답변을 작성해보세요.
1
Soobak
2023.08.09
안녕하세요, 답변 도우미 Soobak 입니다.
첫 번째 cout << sizeof(a) << endl
에서 sizeof(a)
는 배열의 전체 크기를 반환하고,
두 번째 cout << sizeof(a[3]) << endl
에서 sizeof(a[3])
는 배열의 특정 요소의 크기를 반환하기 때문입니다.
cout << sizeof(a) << endl
: 이 코드에서
sizeof(a)
는 배열a
의 전체 크기를 반환합니다.int
자료형의 크기가4
바이트인 환경이라면,sizeof(a)
는12
바이트 (3
*4
바이트) 를 반환합니다.cout << sizeof(a[3]) << endl
: 이 코드에서는 사실 인덱스 참조가 잘못되었습니다.
배열a
는 크기가3
이므로, 인덱스0
,1
,2
를 가지며, 인덱스3
은 범위를 벗어납니다.
하지만, 배열의 요소에 대한 크기를 측정하려는 것임을 전제로 답변을 드려보면,a[3]
은int
자료형이므로,sizeof(a[3])
은int
자료형의 크기를 반환합니다.
만약,int
자료형의 크기가4
바이트인 환경이라면,sizeof(a[3])
은4
를 반환합니다.
답변 1