二级指针

int a = 10;
int *b = &a;
//                        &b
void Func3(int **ptr)
{
    *ptr = new int;
    **ptr = 110;
    int *ptr2 = nullptr;
    ptr2 = *ptr;
    cout << *ptr << endl;
}

暂不考虑函数参数副本机制

解释:

a是值为10的整数

&a是整型a在内存中的地址

*b定义了一个整型的指针变量b指向a在内存中的地址

b 存放的是a的地址,等价于&a

**ptr定义了一个二级指针,由于传入的参数是&b,所以该指针指向b

ptr存放的是b的地址,等价于&b

&ptr ptr在内存中的地址

*ptr 对ptr中存放的数据(实际上是b的地址,等价于&b)进行解引用,等价于 *(&b) ,又因为b中存放的是a的地址,所以实际结果是&a

**ptr由上条可知, *ptr 等价于&a,所以 **ptr等价于 *(&a),所以结果为10

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 程序输出结果:91:&var=0x7ffffffed94c92: &p1=0x7ffffffed95093: p...
    annge阅读 731评论 0 0
  • 导语: C++指针的内存管理相信是大部分C++入门程序员的梦魇,受到Boost的启发,C++11标准推出了智能指针...
    7ee72f98ad17阅读 949评论 0 1
  • C++智能指针 原文链接:http://blog.csdn.net/xiaohu2022/article/deta...
    小白将阅读 6,911评论 2 21
  • 1. 什么是智能指针? 智能指针是行为类似于指针的类对象,但这种对象还有其他功能。 2. 为什么设计智能指针? 引...
    MinoyJet阅读 648评论 0 1
  • 本周收获是: 1、完成简书“这次家长学习,让我有了新的进步”。这篇文章洋洋洒洒写了4800字,是我简书以来写的最长...
    泰来妈妈阅读 193评论 0 1