数组指针、指针数组与指针的指针

数组指针:

    首先看名字“数组指针”是“指针”,那就能够看成指针理解啰。可是前面有数组,也就是它指向的是数组。
    看-》 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*的数组。




指针的指针

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


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

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

实参                                                     所匹配的形参web

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

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

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

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