zoukankan      html  css  js  c++  java
  • C语言指针间接引用

    int a = 10;    //普通变量
    int *p = &a;    //一级指针。是变量的地址。
    int **pp = &p;    //二级指针。是一级指针的地址。
    int ***ppp = &pp;    //三级指针。是二级指针的地址。   

    p里面存着的是地址。假设变量a的地址是0xaa00,p里面存着的就是0xaa00。

    如果你用%p格式去输出p,会得到p == 0xaa00

    什么是间接引用?

    间接引用就是在p前面加*号,就是*p,它的作用和意义是:找到p里面存着的那个地址0xaa00,并找到这个地址对应的内存空间,输出这个内存空间里面存储的内容。因此可以用%d格式去输出*p,你会得到的结果是*p == 10。

    因为他通过p里面存着的地址0xaa00找到变量a,并输出了变量a存储的值10。

    由此可得,对多级指针进行间接引用可以推出如下等式:

    *ppp == pp == &p;  //对三级指针ppp进行间接引用,结果是二级指针pp的值,也就是一级指针p的地址。
    **ppp == *pp == p == &a;  //对三级指针ppp进行2次间接引用,等于对二级指针pp进行间接引用,结果是一级指针p的值,也就是变量a的地址。
    ***ppp == **pp == *p = a;  //对三级指针ppp进行3次间接引用,等于对二级指针pp进行两次间接引用,结果是等于对一级指针p做1次间接引用,结果是a变量的值。
  • 相关阅读:
    灾后重建
    ZYN砍树
    聪聪可可
    GirlCat
    图表控件== 百度 echarts的入门学习
    图表控件的学习===》hightChart 和 Chartjs的使用
    拆分订单===初
    net 的单元测试 初学
    vue js 用nodejs的依赖包 --2016-08-23
    后台框架--HUI 的学习跟使用1
  • 原文地址:https://www.cnblogs.com/zengyu1234/p/14038267.html
Copyright © 2011-2022 走看看