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

일개미님의 프로필 이미지
일개미

작성한 질문수

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

10.2 배열의 기본적인 사용방법

배열과 sizeof()에 대해서

작성

·

202

2

강의 21분쯤에 sizeof(power_of_twos)의 값이 배열의 전체 사이즈 크기라고 합니다. 그럼 원소가 7개니까 28바이트가 되겠네요

그런데

power_of_twos는 포인터 값 아닌가요? x86에서 포인터 값은 4바이트가 나와야될 것 같은데 왜 그렇지 않은건가요?

예시로

int arr[4] = {2, 5, 11, 18};

에서

printf("%zd", sizeof(arr)); -> 16

printf("%zd", sizeof(&arr[0])); -> 4

앞강의에서 arr과 &arr[0]이 같은 주소값이라고 배웠는데

주소 값이면 arr과 &arr[0] 모두 4바이트가 나와야되는데

왜 arr은 배열의 크기인 16바이트가 나오나요?

답변 1

1

배열의 주소를 담는 이름과 포인터는 유사하지만 서로 다른 녀석이기 때문입니다.

말씀하신 점을 포함하여 몇 가지 다른 점이 있는데... 이는 듣고 계신 10장 강의에서 전반적으로 다루게 됩니다. 둘이 다르다는 것을 강의를 들어나가시다보면 이해하실 것 같습니다.

일개미님의 프로필 이미지
일개미

작성한 질문수

질문하기