char a [1] [2]行 列
第一个括号里面可以省略,也就是行可以省略但是列必须有
这里面的a+1是加一个单位,在这里面也就是到下一行的第一个地址
内存中真实的排列情况
005EF7A0 -->a[0] [0] |
---|
005EF7A1 -->a[0] [1] |
005EF7A2 -->a[0] [2] |
005EF7A3 -->a[0] [3] |
005EF7A4 -->a[1] [0] |
005EF7A5 -->a[1] [1] |
005EF7A6 -->a[1] [2] |
005EF7A7 -->a[1] [3] |
005EF7A8 -->a[2] [0] |
005EF7A9 -->a[2] [1] |
005EF7AA -->a[2] [2] |
005EF7AB -->a[2] [3] |
逻辑上的排列情况
a[0] [0] | a[0] [1] | a[0] [2] | a[0] [3] |
---|---|---|---|
a[1] [0] | a[1] [1] | a[1] [2] | a[1] [3] |
a[2] [0] | a[2] [1] | a[2] [2] | a[2] [3] |
int buf[2][3][4];
int (*key)[3][4]=buf;//上面那个也就和这个差不多
char *a[]:数组a是一个指向char类型的指针数组,a里面的每个元素(char 类型)都指向一个字符串 char (**a)[]:a是一个指向数组的指针,里面的元素都是char类型