指针变量也占据一块内存,它也有地址(指针)。称为“指针的指针”。
#include <stdio.h>
void main(){
int x = 10;
int *p = &x; /* p 保存的是x的地址,类型是“整型指针类型”*/
int ** q = &p; /* q 保存的是p的地址,类型是“整型指针的指针类型”*/
int y = *p;
int z = *(*q);
printf("%d\t%d\t%d\t%d\t%d\n",x,&x,p,&p,q);
printf("%d\t%d\t%d\t%d\t%d\t%d\n",q,*q,**q,*p,y,z);
}
运行结果
10 11532724 11532724 11532712 11532712
11532712 11532724 10 10 10 10
其中 11532724 为x的地址
11532724为p的地址
可以看到
&x,p,*q都是x的地址
&p,q为p的地址