直接上代码:
#include <stdio.h> int main() { char a[] = "hello"; char *pa = a; printf("a = %p\n",a); //数组首元素的地址 等效于 &a[0] printf("&a = %p\n",&a); //整个数组a的首地址 //虽然这两个地址都一样,但是意义不一样, //请参考 https://blog.csdn.net/qq_31930499/article/details/79680047 printf("pa = %p\n",pa); //pa指向内容的地址,即a的地址(&a) printf("&pa = %p\n",&pa); //pa指针本身地址 printf("%s\n",a); //打印 注意和上面的不一样 printf("%s\n",pa); //打印 注意和上面的不一样 printf("\n"); int b = 10; int *pb = &b; printf("&b = %p\n",&b); //b的地址 printf("pb = %p\n",pb); //pb指向内容的地址 即b的地址(&b) printf("&pb = %p\n",&pb); //pb指针本身地址 printf("%d\n",b); //打印 printf("%d\n",*pb); //打印 return 0; }
运行结果:
a = 0xffffcbfa &a = 0xffffcbfa pa = 0xffffcbfa &pa = 0xffffcbf0 hello hello &b = 0xffffcbec pb = 0xffffcbec &pb = 0xffffcbe0 10 10