@TOC
前言
前面我们学习了一级指针操作变量,那什么是二级指针?二级指针又如何操作变量呢?
一、二级指针的声明定义:
二级指针定义:
- 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 是一模一样的。
总结
这部分内容要自己好好理解,自己推导一下公式,有些难度。