zoukankan      html  css  js  c++  java
  • 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
                说到底,二级指针就是一级指针的扩展,只要搞明白一级指针怎么读,怎么操作,内存图怎么画,怎么指向空间,怎么访问空间,也一样能用相同的规则,来解读二级指针,多级指针.
                二级指针的例子到数组那里再展开.

                多画图,是学好指针的诀窍.
  • 相关阅读:
    创建被访问的swf文件
    BFS寻路算法的实现
    Flex里的命名空间,fx、mx、s【转】
    Flex的基础用法【转】
    Pow(x, n)
    Roman to Integer
    Integer to Roman
    Divide Two Integers
    Single Number II
    Single Number I
  • 原文地址:https://www.cnblogs.com/kmist/p/10053045.html
Copyright © 2011-2022 走看看