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

免责声明:内容仅供参考,不保证正确性。


全栈后端 / C++教程 :
















Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.