定义 变量名 类型 数组对应的指针类型 取地址后的类型
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)