• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

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

23.08.08 22:36 작성 조회수 133

1

int a[3];

cout << sizeof(a) <<endl;

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

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

 

답변 1

답변을 작성해보세요.

1

Soobak님의 프로필

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 를 반환합니다.

geoni6877님의 프로필

geoni6877

질문자

2023.08.09

친절한 답변 감사드립니다