C++指向指针的指针
指向指针的指针
C++中,指向指针的指针,也是一种变量,通常又被称为多级间接寻址,也称为指针链。以二级指针为例,即指向指针的指针,比如**p,那么最外层的指针指向的是*p指针的内存地址,然后最里层的指针则指向p的内存地址,如果是多级的指针,则以此类推。C++指向指针的指针的定义语法如下:
type **pN = &pointerName;
提示:多级指针赋值的时候,为什么要通过“&”寻址符号寻址pointerName指针呢,指针本身不就是一个指向内存地址的变量吗。这是因为多级指针中,除了最内层的指针之外,是指向指针内存地址的。
提示:注意,“&”符号后的指针并没有“*”。
C++多级指针的作用
多级指针的作用可以参考C语言中的介绍:C语言二级指针。
C++多级指针实例代码
可以根据输出的结果,比较一级指针p1和二级指针p2所指向的内存地址:
#include <iostream>
using namespace std;
int main(){
int x = 1;
// 定义一级指针指向x内存地址
int *p1 = &x;
// 定义二级指针指向指针p1内存地址
int **p2 = &p1;
// 比较一级指针和二级指针指向的内存地址
printf("%x\n",p1);
printf("%x\n",p2);
return 0;
}
代码编译运行,得到输出(不同操作系统、计算机和编译器都可能得到不同的输出地址):
61fe14
61fe08
免责声明:内容仅供参考,不保证正确性。