指向指针的指针是一种多级间接寻址的形式,或者说是一个指针链。通常,一个指针包含一个变量的地址。当我们定义一个指向指针的指针时,第一个指针包含了第二个指针的地址,第二个指针指向包含实际值的位置。

当一个目标值被一个指针间接指向到另一个指针时,访问这个值需要使用两个星号运算符,如下面实例所示:

#include <iostream>

using namespace std;

int main ()
{
int var;
int *ptr;
int **pptr;
var = 3000; // 获取 var 的地址
ptr = &var; // 使用运算符 & 获取 ptr 的地址
pptr = &ptr; // 使用 pptr 获取值
cout << "var 值为 :" << var << endl;
cout << "*ptr 值为:" << *ptr << endl;
cout << "**pptr 值为:" << **pptr << endl;
cout << "var 地址为 :" << &var << endl;
cout << "ptr=&var 值为var的地址:" << ptr << endl;
cout << "ptr地址为:" << &ptr << endl;
cout << "*pptr=ptr=&var 值为var的地址:" << *pptr << endl;
cout << "pptr 地址为:" << &pptr << endl;
return 0;
}

当上面的代码被编译和执行时,它会产生下列结果:

var 值为 :3000
*ptr 值为:3000
**pptr 值为:3000
var 地址为 :0x7ffeec7a65e8
ptr=&var 值为var的地址:0x7ffeec7a65e8
ptr地址为:0x7ffeec7a65e0
*pptr=ptr=&var 值为var的地址:0x7ffeec7a65e8
pptr 地址为:0x7ffeec7a65d8

参考文章:https://www.runoob.com/cplusplus/cpp-pointer-to-pointer.html

学习:c++指向指针的指针(多级间接寻址)的更多相关文章

  1. 【学习笔记】【C语言】指向函数的指针

    每个函数都有自己的内存地址,指针保存了函数的地址后就能指向函数了. #include <stdio.h> double haha(double d, char *s, int a) { } ...

  2. C++学习笔记:指向函数的指针

    #include <stdio.h> int sum(int a, int b) { return a+b; } int minus(int a, int b) { return a-b; ...

  3. C++学习笔记31,指向引用的指针(3)

    我们来看一个简单的指向引用的指针的样例. #include <iostream> using namespace std; int main(){ int x=10; int y=20; ...

  4. iOS 阶段学习第八天笔记(指针)

    iOS学习(C语言)知识点整理 一.指针 1)概念:存储变量的地址的一个变量. 2) 数据存储类型分析 1.text (代码段) :存储二进制的可执行代码 2.data(初始化的数据段) 存储初始化的 ...

  5. C学习笔记(4)--- 指针的应用(第一部分)

    1.指针(pointer)概念: 指针是一个变量,其值为另一个变量的地址,即,内存位置的直接地址.就像其他变量或常量一样,您必须在使用指针存储其他变量地址之前,对其进行声明.指针变量声明的一般形式为: ...

  6. C语言中 指向函数的指针 简介

    引子:在学习CPrimerPlus的第十四章的14.13节中,遇到了如下三行文字,是有关指向函数的指针的,把我搞晕了. char * fump(); //返回指向char的指针的函数 char (* ...

  7. iOS学习07之C语言指针

    本次随笔主要是为了学习和理解C语言中的指针,指针树状图如下: 1.访问数据的两种方式 1> 直接访问:定义变量后,直接访问变量 ; printf("a = %d\n", a) ...

  8. C语言 详解多级指针与指针类型的关系

    //V推论①:指针变量的步长只与‘指针变量的值’的类型有关(指针的值的类型 == 指针指向数据的类型) //指针类型跟指针的值有关,指针是占据4个字节大小的内存空间,但是指针的类型却是各不相同的 // ...

  9. 【C语言】14-返回指针的函数与指向函数的指针

    前言 前面我们花了接近3个章节学习指针,应该都感受到指针的强大了吧.指针可以根据地址直接操作内存中的数据,使用得当的话,不仅能使代码量变少,还能优化内存管理.提升程序性能.关于指针的内容还非常多,比如 ...

随机推荐

  1. XML中的XPATH和DTD

    大家好,乐字节小乐又来了,上次给大家说道的是XML解析,这次接着讲述XML文档中的语言:XPATH.DTD 一.先来说说XPATH 1.XPATH 概念 XPath 是一门在 XML 文档中查找信息的 ...

  2. mpx小程序框架

    在构建自己mpx小程序demo的时候遇到的问题 1.关于自定义tabbar的问题 1.1 在根据微信小程序的自定义tabbar来做 ▲在与src同级目录创建 custom-tab-bar 文件夹 创建 ...

  3. CentOS7安装Prometheus(二进制)

    一.概述 Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB).Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本. 环境说 ...

  4. 【模板】bitset

    Bitset常用操作: bitset<size> s; //定义一个大小为size的bitset s.count(); //统计s中1的个数 s.set(); //将s的所有位变成1 s. ...

  5. C#录制屏幕采集系统桌面画面

    在项目中,有很多需要录制屏幕的场景,比如直播课,录制教学视频等场景.但.NET自带的Screen类功能比较弱,效率很低.那么如何简单快捷地高效采集桌面屏幕呢?当然是采用SharpCapture!下面开 ...

  6. 局域网电脑禁止ping通的解决方法

    方法1:命令行模式进入服务器后 点击 开始——运行 输入命令:netsh firewall set icmpsetting 8这样就可以在外部ping到服务器了 非常简单实用!同样道理,如果想禁止Pi ...

  7. Android为TV端助力之查找当前界面焦点所在位置

    View rootview = this.getWindow().getDecorView(); int focusId = rootview.findFocus().getId(); Log.i(T ...

  8. 基于RBAC模型的权限设计:如何设计系统权限体系?

    一.什么是RABC RBAC(基于角色的权限控制)模型的核心是在用户和权限之间引入了角色的概念.取消了用户和权限的直接关联,改为通过用户关联角色.角色关联权限的方法来间接地赋予用户权限(如下图),从而 ...

  9. idea2018.3导入grails项目,无法正常使用问题解决

    注:作者的grails版本为2.0.4,grails3版本以上的导入方式为gradle方式 一.导入grails项目 1.启动新项目向导.如果IntelliJ IDEA目前没有打开任何项目,请在欢迎屏 ...

  10. day 05 预科

    目录 文本处理 什么是文件 什么是文本 视频/音频文件(多媒体文件) 我们如何通过文本编辑器去控制txt文件 文本高级 文本处理+高级分析 文本处理 什么是文件 文件是操作系统提供的一个特殊概念,拿来 ...