原文地址:http://blog.csdn.net/qq_30594349/article/details/51971623
1.一维数组的数组名
int a[3];
a:指针常量,保存的是一维数组首元素的地址;
&a:对一维数组的数组名取地址,表示一维数组的地址;
*(&a):对一维数组的地址取值等于数组首元素的地址。
2.二维数组的数组名
int a[2][2];
*(*(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)个元素的值。
3.三维数组的数组名
int a[2][2][2]
*((*(*(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)个元素的值。