多级指针
- 指针中保存着其他指针的地址,我们就称之为多级指针
多级指针的定义
- 在要保存的指针变量的基础上加一颗星即可
- 例如: int *p; 如果想保持指针变量p的地址, 只需在定义时多加一颗星即可 int **pp;
int num;
num = 6;
// 一级指针
int *p;
p = #
printf("*p = %i\n", *p); // 6
// 二级指针
int **pp;
pp = &p;
printf("&pp = %p\n", &pp); // &pp = 0060FEA4
// 结论: *pp 和 p 和 &num相等;
printf("*pp = %p\n", *pp); // *pp = 0060FEAC
// *(*pp) --> *(p) --> *p --> num
// 规律: 如果想通过多级指针获取某个变量的值, 那么是几级指针, 前面就写几颗星即可
// 注意点: 在企业开发中, 最多二级指针, 三级顶天了, 四级没讲过
printf("**pp = %i\n", **pp);
在以上代码中
*pp == p == &num
(pp) --> *(p) --> *p --> num
多级指针的内存表现形式
int num = 9;
int *p;
p = #
int **pp;
pp = &p
![](https://img.haomeiwen.com/i13790579/bdff6258913f14f0.png)
- 图解
指针pp指向p的地址 通过pp可以访问到p内存中存储的地址0xff94,通过访问p可以访问到num内存中存储的数据9,也就是说通过**pp可以直接访问到num内存中存储的数据
网友评论