多级指针
指针保存的是变量的地址,保存的这个变量可以是一个指针变量。
**
表示二级指针,***
表示三级指针,以此类推。
int a = 50;
//p1上保存的a的地址
int*p1= &a;
//p2上保存的p1的地址
int** p2 = &p1; //二级指针
//p3上保存的p2的地址
//int*** p3 = &p2; //三级指针
二级指针
二级指针上保存的是一级指针的地址。*p2
即指向p1
,**p2
即指向变量a
int a = 50;
//p1上保存的a的地址
int*p1= &a;
//p2上保存的p1的地址
int** p2 = &p1; //二级指针
printf("p1:%#x,p2:%#x\n", p1, p2);
printf("p1:%#x,p2:%#x,a:%#x\n", &p1, &p2,&a);
//改变a的值
**p2 = 90;
printf("%d\n", a);
getchar();
打印结果为
p1:0x1af794,p2:0x1af788
p1:0x1af788,p2:0x1af77c,a:0x1af794
90