对解引用符合*的深刻理解及二级指针

今天看书《C++高级语言程序设计》(徐惠民)的书中关于指针的指针作为函数的参数一节,对指针有了更深层次的感悟,记录。

要点1:解引用符的作用,把它放在一个地址的左边,可以取得这个地址内存放的值。*

要点2:指针就是存放地址的变量,可以简单的理解为:指针就是一个地址。

要点3:inta=10;intpa=&a;如何理解?假如:a的地址为0x2000,那么指针pa内存放的值为0x2000,但指针本身的地址并不是这个,假设为指针pa的地址为0x1000。如果我想获得a内存放的值,也就是0x2000内存放的值,那么我根据要点1,得出:0x2000,当然这么写你会的到一个语法错误,因为你提前并不指定a会存到那个地址,我们要获得地址,必须使用取地址符号&,也就是&a来获得a的地址。那么,我获得a的地址就变成*&a,这样写是完全正确的。那么,指针pa的地址,也可以用&获得&pa,最后:

&pa     //获得指针pa的地址
*&pa    //获得pa内存放的值,也是一个地址
**&pa   //获得pa存放的地址内的值,也就是pa指向的地址的值
**&pa和*pa的计算结果相同,观察下面的计算:
[vagrant@bio ~]$ cat t1.cpp
#include <cstdio>
int main(int argc, char *argv[])
{
        int a=10,*pa=&a;
        printf("a=%d,*pa=%d,**&pa=%d\n",a,*pa,**&pa);
        return 0;
}
[vagrant@bio ~]$ ./t1
a=10,*pa=10,**&pa=10

原文链接: https://www.cnblogs.com/litifeng/p/8976307.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/273122

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月14日 下午11:23
下一篇 2023年2月14日 下午11:24

相关推荐