前言
前面我们学习了一级指针操作变量,那什么是二级指针?二级指针又如何操作变量呢?
一、二级指针的声明定义:
二级指针定义:
int a = 12; / / a变量有自己的空间地址,假设为 0x10, 里面装 12 int *p = &a; / / p变量有自己的空间地址,假设为 0x20, 里面装 0x10 int **pp = &p; / / pp变量有自己的空间地址,假设为 0x30, 里面装 0x20
注意点:
pp 就是二级指针变量,用来装1指针的地址。
int ** 就是二级指针类型,int *是一级指针类型。
同理: int ***是三级指针类型,装二级指针地址,&pp。
int **** 是四级指针类型,装三级指针地址。
平时顶多用到2级,本质都是一样的。
二、二级指针的使用:
计算规则:
*+空间的地址,就是该空间本身。
*+ 空间的地址,就是该空间本身。
推导d:
p == &a; *p == *&a; pp == &p; *pp == *&p ==p; ** pp ==*p == a;
所以:**pp 和 a 是一模一样的。
总结
这部分内容要自己好好理解,自己推导一下公式,有些难度。