작성
·
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장 강의에서 전반적으로 다루게 됩니다. 둘이 다르다는 것을 강의를 들어나가시다보면 이해하실 것 같습니다.