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变量的值。
  • 相关阅读:
    ajax chrome load
    不一样的自拍
    jQuery点击空白关闭弹出层
    笔记整理
    带三角缺口的边框
    连续input在同一行对齐问题
    用Windows PowerShell 控制管理 Microsoft Office 365
    Qt and C++ Reflection,利用Qt简化C++的反射实现
    滴滴打车推出的“专车服务”后的见闻以及思考
    Exchange的AutoDiscover服务
  • 原文地址:https://www.cnblogs.com/zengyu1234/p/14038267.html
Copyright © 2011-2022 走看看