안녕하세요..
sizeof가 어떻게 구현된 것인가 알아보다가
#define getsize(x) ((char *)(&x+1) - (char *)(&x)) 같은 구문을 발견했습니다. 이해가 잘 가지 않아 아래 코드로 주소값을 찍어보니
int a[] = {1, 2, 3, 4, 5, 6};
printf("a = %p\n", a);
printf("&a = %p\n", &a);
printf("a+1 = %p\n", a+1);
printf("&a+1 = %p\n", &a+1);
OUT:::
a = 0x7fffed3a0da0
&a = 0x7fffed3a0da0
a+1 = 0x7fffed3a0da4
&a+1 = 0x7fffed3a0db8
두둥..
원래 이런 것인가 하고 코드를 약간 바꾸어서
int a[];