美文网首页
二级指针

二级指针

作者: annge | 来源:发表于2020-02-16 23:31 被阅读0次
    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

    相关文章

      网友评论

          本文标题:二级指针

          本文链接:https://www.haomeiwen.com/subject/oqjvfhtx.html