C语言指针篇(二)多级指针

    多级指针

        多级指针常常使用于数组.这里仅仅介绍一下它长什么样,后文会再次详细对比使用.
        多级指针呢,常见的有二级指针.见图.
 

 
        二级指针的写法: char **p;
            这样来看: char *(*p)
 
 
            先看一级指针.char *p; *p是一个指针,指向了一个char大小的小盒子.
            再看看二级指针. char * (*p) (*p) 是一个指针,指向了一个 * 的小圆圈 .那这个小圆圈叫*(*p) ,这第二个小圆圈既然是指针,那它指向了一个char 大小的小盒子.
            
            在二级指针里面, 只有一个指针变量,就是p , 这个指针变量表示 这个二级指针链的入口地址.
 
 
            
        二级指针的使用

            二级指针的使用是比较烧脑的.但是仔细整理一下,还是可以从图上简单地理解出来.
 

            
  对比一级指针.一级指针的使用
            char *p;

 1             int main(){
 2                 
 3                 char *p;
 4                 char a = 10;
 5 
 6                 p = &a; //指针变量p的赋值是决定了p指向哪个具体的地址,这里是指向小盒子a的地址.
 7                 *p = 20;    //对p进行*运算是表示,对p指向的小盒子的内容进行取值或者赋值.
 8 
 9                 char **p;
10                 char a = 10;
11 
12                 //我们先记住一条规则,如果x是一个地址,那么通过 *运算就可以访问这个这个空间里面存放的数据.
13 
14                 *p = &a;    //这里的*p表示的是对p取值,那二级指针p的值是什么?当然是存放着一级指针的地址啦, 通过*运算,就可以访问一级指针这个小圆圈里面的数据,将这个小圆圈里面的内容,写成小盒子a的地址.
15                 **p = 20;   //上一步把*p的值写成了小盒子a的地址,那现在*p里面的内容就是a的地址啦,通过 *运算,就可以访问小盒子里面的内容啦.
16 
17             }
View Code

 

            说到底,二级指针就是一级指针的扩展,只要搞明白一级指针怎么读,怎么操作,内存图怎么画,怎么指向空间,怎么访问空间,也一样能用相同的规则,来解读二级指针,多级指针.
            二级指针的例子到数组那里再展开.

            多画图,是学好指针的诀窍.

 

posted @ 2018-12-02 13:19  kmist  阅读(1628)  评论(0编辑  收藏  举报