<style type="text/css"> p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #78492a; background-color: #ffffff} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; background-color: #ffffff; min-height: 14.0px} p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #ba2da2; background-color: #ffffff} p.p4 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff} p.p5 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff; min-height: 13.0px} p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #d12f1b; background-color: #ffffff} span.s1 {color: #d12f1b} span.s2 {color: #000000} span.s3 {color: #ba2da2} span.s4 {color: #272ad8} span.s5 {color: #3e1e81} span.s6 {text-decoration: underline} span.s7 {text-decoration: underline ; color: #000000} </style>
#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;
}
이거에 출력값이
<style type="text/css"> p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px 'Apple SD Gothic Neo'; color: #000000} p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; min-height: 13.0px} span.s1 {font-variant-ligatures: no-common-ligatures} span.s2 {font: 11.0px Menlo; font-variant-ligatures: no-common-ligatures} </style>
n: 7
&n: efbff5c8
포인터 하나당 크기는 8 바이트
&n: 0x7ffeefbff5c8
Program ended with exit code: 0
댓글로 누가 해보라는것도 해봤고,
%p가 16진수로 표현하는거니까 %x로도 나타내봤는데
앞에 4자리가 빠져서 나오네...
그럼 %p 로 출력했을 때 앞에 더나오는 4자리는 뭐야...
아오 자꾸 복붙하니까 css 코드가 붙네
%x -> 32bit, %lx -> 64bit, %p -> 64bit
ok?
그니까 0이 생략된거라 생각하면 되고 이런걸로 고민하냐 ㅋㅋㅋ
64비트짜리를 %lx가 아니라 %x를 사용하여 하려니 32비트까지만 출력되고 짤린것
ㄴ 하나하나 제대로 이해하고싶어서...
그러면 7ffeefbff5c8 라고 나오는게 사실은 앞에 0000이 생략된거고 원래 값은 00007ffeefbff5c8 라는 말이야??