LS:从概念上来说,二维数组类型的变量,在使用时,可以自动退化为一个指向一维数组的指针。
int a[3][4];
a在使用时可以退化为一个int (*)[4]类型的变量。
所以**a相当于:
*(*a) =>
*(*(int(*)[4])a) => *(a[0]) => a[0][0]
注意a[0]和 *a类型相同,是int [4]类型。
int[4]类型的变量,在使用时自动退化为一个指向其内部元素(即int)的指针。
这就是**a的全过程,和int **p; **p的过程是完全不同的,千万不要搞混也绝对不要认为a“是个”“指向指针的指针”(第一,a不是指针,第二,a退化以后的类型也不是“指向指针的指针”)