今天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;
最后还是要友情提示一下,千万别自己把二级指针的概念想复杂了,它就是一个变量仅仅是一个变量而已,是用于存放地址的变量而已。
标签:10,变量,int,ppn,C语言,心结,pn,指针 From: https://blog.csdn.net/CPP_ZhouXuyang/article/details/141822591