a[i][j];
*(a+i)[j]
(*(*(a+i)+j))
*(*(a+i)+j);
a+i:第i+1个一维数组的地址
*(a+i):第i+1个一维数组首元素的地址
*(a+i)+j:第i+1个一维数组的第j+1个元素的地址
*(*(a+i)+j): 第i+1个一维数组的第j+1个元素的值
*(*(*(a+i)+j)+k):
a+i:第i+1个二维数组的地址;
*(a+i):第i+1个二维数组的首个一维数组的地址
*(a+i)+j:第i+1个二维数组的第j+1个一维数组的地址
*(*(a+i)+j):第i+1个二维数组的第j+1个一维数组的首元素的地址
*(*(a+i)+j)+k:第i+1个二维数组的第j+1个一维数组的第k+1个元素的地址
*(*(*(a+i)+j)+k):第i+1个二维数组的第j+1个一维数组的第k+1个元素的值
总结:
&a:对一维数组取地址等于一维数组的地址
*(&a)=a:对一维数组的地址取值等于一维数组首元素的地址
a:一维数组首元素的地址
aa:首个一维数组的地址
*aa;首个一维数组的首元素的地址
**aa:首个一维数组的首元素的值
&aa:对二维数组名取地址等于二维数组的地址
*(&aa)=aa:对二维数组的地址取值等于首个一维数组的地址
**(&aa)==*aa;