#include <stdio.h>


int main(void)

{

    int n = 7;

    

    printf("n: %d ", n);

    printf("&n: %x ", &n);

    printf("&n: %lx ", &n);

    printf("포인터 하나당 크기는 %ld 바이트 ", sizeof(void *));

    printf("&n: %p ", &n);

    

    printf("================================ ");

    

    printf("&n %p ", &n);

    printf("&n %p ", (void*)((int)&n << 4));

    printf("&n %p ", (void*)((int)&n << 8));

    printf("&n %p ", (void*)((int)&n << 12));

    

    putchar(' ');

    

    return 0;

}


이거 출력값이


n: 7 

&n: efbff5c8 

&n: 7ffeefbff5c8 

포인터 하나당 크기는 8 바이트

&n: 0x7ffeefbff5c8 


================================


&n 0x7ffeefbff5c8

&n 0xfffffffffbff5c80

&n 0xffffffffbff5c800

&n 0xffffffffff5c8000


인데 앞에 0000이 생략된거였다면 이렇게 안나오지않나...??

만약 앞에 0000이었으면 <<4에서는

원래 0000 이 비트로 나타내면 0000 0000 0000 0000 이니까
앞에 4개의 0000 사라지고 뒤에 7 (0000 0111)의 앞의 4개인 0000이 들어가서

그대로 0000 0000 0000 0000 이니까 출력값은 0000으로 나와야하는거 아닌가