C语言-多级指针

多级指针

指针保存的是变量的地址,保存的这个变量可以是一个指针变量。
**表示二级指针,***表示三级指针,以此类推。

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  

猜你喜欢

转载自blog.csdn.net/ethanco/article/details/78651019