指向指针的指针
指针本身也是可用指针指向的内存对象。指针占用内存空间存放其值,因此指针的存储地址可存放在指针中。
C++ 使用 ** 操作符指派一个指针指向另一指针。
代码示例如下:
int ival =1024;
int *pi = &ival;
int **ppi = π
int *pi2 = *ppi;
定义了变量 ival,指针 pi指向 ival,指针 ppi指向指针 pi,C++ 使用 ** 操作符指派一个指针指向另一指针。对象关系如图1所示
注意:对 ppi 进行解引用照常获得 ppi 所指的对象,即指针 pi2与指针 pi相等,同指向变量 ival。
各指针及指针解引用输出结果如下:
pi=0x7ffdb2bcf09c
*pi=1024
ppi=0x7ffdb2bcf0a0
*ppi=0x7ffdb2bcf09c
**ppi=1024
pi2=0x7ffdb2bcf09c
*pi2=1024
可以看到 pi值与 *ppi(ppi解引用)值和 pi2值相同,均为变量ival的数据存储地址。