代码如下:
int i = 1;
int *p = &i;
int **pp = &p;
printf("&i= %p\n", &i);
printf("p= %p\n", p);
printf("*p= %d\n", *p);
printf("&p= %p\n", &p);
printf("pp= %p\n", pp);
printf("*pp= %p\n", *pp);
printf("*(*pp)= %d\n", *(*pp));
printf("&pp= %p\n\n", &pp);
运行结果如图:
指针指向地址图示:
首先定义一个int型变量i,初始化i的值为1;
然后定义一级指针变量p存储i的地址,*p即是i的值1;
最后定义二级指针变量pp存储p的地址,*pp即是p的值(i的地址),
*(*pp)=*p即是i的值1