二维数组及指针分析

定义         变量名    类型        数组对应的指针类型      取地址后的类型

int a[3][2];      a       int[3][2]      int (*const)[2]         int (*const)[3][2]

int (*a1[3])[2];   a1      int(*[3])[2]    int (**const)[2]        int (*(*const)[3])[2]

int *a2[3][2];    a2      int *[3][2]     int (*(*const))[2]       int (*(*const))[3][2]

int (*p1)[3][2];   p1      int (*)[3][2]    本身就是指针            int (**const)[3][2]

int (**p2)[2];    p2      int(**)[2]     本身就是指针             int (***const)[3][2]

int *(*p3)[2];    p3      int *(*)[2]      本身就是指针            int *(**const)[3][2]

**********

  • 定义变量的语句,去掉变量名就是它的类型
  • 将数组类型中的第一个[]替换成(*const)就得到对应的指针类型
  • 对变量取地址,结果的类型是将定义语句的变量替换成(*const)
原文地址:https://www.cnblogs.com/wlcaption/p/3830883.html