#include <stdio.h>
int main(void)
{
int n = 7;
printf("n: %d ", n);
printf("&n: %p ", &n);
return 0;
}
이거에 출력값이 이렇다.
n: 7
&n: 0x7ffeefbff5c8
Program ended with exit code: 0
궁금한거는 &n값을 16진수로 출력했는데 왜 48비트가 나오냐는 거다.
32비트 운영체제에서는 0xFFFFFFFF 로 8자리가 나오고
64비트 운영체제에서는 0xFFFFFFFFFFFFFFFF 로 16자리
이런꼴로 나와야하는거 아니냐
근데 맥에서 xcode로 실행하니까 0xFFFFFFFFFFFF 꼴로 12자리가 나오네
맥os가 48비트인것도 아닐껀데 왜 이래 나오는지 아는 사람
머라쓴거여시부랄
ㄴ 다시 바바 수정했어
음 잘 모르겠지만 이거 함 쳐볼래?
printf("포인터 하나당 크기는 %ld 바이트\n", sizeof(void *));
윈도에서 32bit consol로 돌리면 8바이트 나오는데 맥은 어떻게 나옴?
#include <stdio.h>int main(void){ int n = 7; printf("n: %d \n", n); printf("&n: %x \n", &n); printf("포인터 하나당 크기는 %ld 바이트\n", sizeof(void *)); printf("&n: %p \n\n", &n); return 0;}
ㄴ 글 다시 쓸게 댓글로 잘 안써진다
당연히 앞의 0은 생략이지
그렇게 생각해야하는거 아닐까?