C语言 解开你对“二级指针”的心结与恐惧

今天Mr.狠人在这和大家分享二级指针,我们不用把二级指针想的天花乱坠非常困难

其实二级指针就是一个指针的地址。我们用代码来辅助理解一下

    int n = 10;
    int* pn = &n;//pn是一个一级指针变量
                 //pn指向n,指针变量也是一个变量

现在我们有了n的地址,并且把它放到了新建的变量pn当中去,那么pn是不是也有属于它的内存空间,有相应的空间肯定就有对应的“门牌号”,那么我们再把pn的地址取出来放到新建的变量ppn当中去。

    ppn = &pn;//ppn就是二级指针变量
			  //二级指针变量就是用于存放一级指针变量的地址的

不难理解吧,就是这么一个过程,但我们现在缺失了ppn的类型

	int** ppn = &pn;

现在肯定很多同学有了一个概念的轮廓,就有同学提问那是不是有三级指针、四级指针等,回答理论上肯定是有的,只是现在三级指针几乎都没有使用的情况,更不用说四级五级或者更多。

回到正题,有了这个概念,我们是不是能倒推了解解引用的过程。

 

    int n = 10;
    *ppn = &n;//等价于pn = &n;
    int n = 10;
    **ppn = 10;
    //等价于*pn = 30;
    //等价于n = 30;

 

最后还是要友情提示一下,千万别自己把二级指针的概念想复杂了,它就是一个变量仅仅是一个变量而已,是用于存放地址的变量而已。 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值