강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

geoni6877님의 프로필 이미지
geoni6877

작성한 질문수

홍정모의 따라하며 배우는 C++

배열의 크기에 대한 질문이요

해결된 질문

작성

·

223

1

int a[3];

cout << sizeof(a) <<endl;

cout << sizeof(a[3]) <<endl;

이 둘의 출력결과가 다른이유는 무엇인가요??

 

답변 1

1

안녕하세요, 답변 도우미 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 를 반환합니다.

geoni6877님의 프로필 이미지
geoni6877
질문자

친절한 답변 감사드립니다

geoni6877님의 프로필 이미지
geoni6877

작성한 질문수

질문하기