1. 打印变量的地址,以 16 进制显示
int a;
scanf("%d", &a);
int *p = &a;
printf("%#x",p);
2. 打印出指针类型的空间大小
printf("%d", sizeof(int *)); // msvc 64位编译器是8个字节大小,gcc 编译器是4个字节大小
3. 注意指针套娃,最不注意的是 &pp 的值,这个用不到,但不能忽略
int *p = &a;
int **pp = &p; // 指针变量的地址存入到另一个指针变量中
此处逻辑:首先系统通过 &pp 的地址 9b412ffd90 找到变量 pp = &p,获取到其中的值 9b412ffd88,这个值就是指针变量 p 的地址,然后通过这个地址去找到指针变量 p,发现 p 里面的值是 9b412ffd64(&a),然后去找该地址 &a 对应的值,发现里面的值是 1,正好是变量 a 的值
fd