p, p-2, p- (p -2)
큰꽃
2023.04.01
질문 요약 :p를 인트형포인터로 선언하면 4바이트이고 p-2는 인트기본이 4바이트이므로 8바이트가 p와 차이 나겠죠
그런데 p - (p -2)하면 8의 값이 나와야 하는데 2의값이 나오네요. 물론 수학적으로는 맞죠 하지만 (p -2)가 먼저 계산되고
그값을 p로 빼니까 8이 나와야 하는거 아닌감요
엄밀히 말하면 p는 int 형 변수를 가리키는 포인터이고 포인터는 4바이트 단위로 하잖아요. 어쨋든 질문요약은
p - (p -2) =2(컴퓨터) != p - p(p-2) = 8(제생각) 이네요.
질문 내용 :
#include stdio.h
#include stdlib.h
int main(void)
{
char *format = %p %d %d %d\n;
int i = 3;
int * p = &i;
printf(format, p, *p +7, 3 * **&p + 1, 5 * (p -(p-2)));
printf( %d %d %d %d\n, p ,(p-2),p - (p-2), sizeof(p));= 질문 부분
system(pause);
return 0;
}