작성
·
201
1
교수님께서 쓰신 코드의 24번째 줄을 보시면
printf("%u\n", (unsigned)(&arr2d[0] + 1));
이렇게 되어있는데요. 제가 생각하는게 맞는지 한번만 확인 부탁드립니다.
&arr2d[0] + 1 부분을 연산하는 순서는 연산자 우선순위에따라 []가 먼저수행되어 arr2d[0] 이 수행되고
그이후 연산자 우선 순위가 높은것이 & 이므로 &arr2d[0] 이 수행되어 arr2d의 맨첫번째 원소 주소가 되고
그이후 연산자 우선 순위가 높은것이 +이므로 arr2d의 맨첫번째 원소 주소 에 포인터 연산으로 1을 더해서(여기서는 2차원 배열의 형태로 존재하고 각배열에 float 4개가 존재하므로 16바이트가 더해짐) arr2d의 5번째 원소의 주소가 최종적으로 나오게 되는것이 맞는 건가요?