zoukankan      html  css  js  c++  java
  • 数组指针、指针数组与指针的指针

    数组指针:

        首先看名字“数组指针”是“指针”,那就可以当作指针理解啰。但是前面有数组,也就是它指向的是数组。
        看-》 int (*p)[10], 我们从表达式分析,因为()的优先级高,于是*p代表p是指针,又int 修饰的是[10]表示
       一个含有10个int型的数组,于是p代表的是含有10个元素的数组的首地址。

       也许该这么定义数组指针:

               int (*)[10] p

           因为依我们的手法,肯定前面是类型,后面是变量嘛,于是前面定义的类型是一个数组指针,
      
     后面是该指针的名字。但是编译器可不这么想啦,因为这样写太丑。于是就写成了
           
               int (*p)[10] 
      

    指针数组:

        指针数组,故名思义指针数组就是“数组”,于是呢,但是数组里面的内容是指针,于是呢我们
       
            int *p[10]
        
       这里可以这样理解,由于[]的优先级比*更高,于是首先这个p 与[]结合成一个数组,于是数组名

        是p,后面的int *则修饰里面的内容,得到是一个含有10个int*的数组。




    指针的指针

        指针的指针就是指针里面存储的内容还是一个指针地址。


    数组指针 指针数组 指针指针在形参与实参上的关系

    数组名被改写成一个指针参数”规则并不是递归定义的。数组的数组会被改写成“数组的指针”,而不是“指针的指针”:

    实参                                                     所匹配的形参

    数组的数组          char c[8][10];                  char (*)[10];          数组指针

    指针数组             char *c[10];                     char **c;               指针的指针

    数组指针(行指针)  char (*c)[10];                  char (*c)[10];        不改变

    指针的指针           char **c;                         char **c;               不改变


     










  • 相关阅读:
    使用AnsyncTask异步类从网络上下载图片
    fibonacci分治求法
    JavaScript
    JavaScript
    JavaScript
    JavaScript
    yarn安装vue后,报“文件名、目录名或卷标语法不正确。”
    VIM-Plug安装插件时,频繁更新失败,或报端口443被拒绝等
    Node.js Windows Binary二进制文件安装方法
    Linux常用命令
  • 原文地址:https://www.cnblogs.com/yml435/p/4655461.html
Copyright © 2011-2022 走看看