1:二维数组
二维数组是“数组的数组”,也即二维数组是由一维数组构成的!
1.1: 【例如】:int a[3][4];
1:二维数组是数组的数组,也即二维数组a是3个一维数组组成的!
2:相当于定义了3个一维数组:int a[0][4], a[1][4], a[2][4],每个一维数组有4个元素
3:此处是把a[0], a[1], a[2]看作是一维数组的名字。
4:则二维数组就转换成一维数组了,就可以在一维数组的领域内解决问题了
5:且在二维数组中存在以下等式关系:
*(&a[i][j]) == *(a[i]+j) == *(*(a+i)+j) ----->取各元素值
a[i]+j === *(a+i)+j === &a[i][j] //这是各元素地址
1.2 : 二维数组看作是一维数组的矩阵
int arr[3][4]={{1,2,3,4},{5,6},{9,10}} ,矩阵表示为:
1 2 3 4
5 6 0 0
9 10 0 0
2:三维数组
三维数组是“数组的数组的数组”,也就是说三维数组是由二维数组构成的,而二维数组是由一维数组构成的
2.1 :例如: int a[2][3][4]
1: 可以把三维数组看成是2个二维数组构成的,而二维数组又是由一维数组构成的!也即本题定义了2个二维数组 int a[0][3][4]和a[1][3][4](此处是把a[0], a[1]看作是二维数组的名字)
2: 而二维数组又是由一维数组构成的,所以此处的二维数组又是由3个一维数组构成的。也即一维数组
a[0][0][4], a[0][1][4], a[0][2][4], a[1][0][4],a[1][1][4],a[1][2][4]
int a[0][0][4] //此处是把a[0][0]看做是一维数组的名字,它包含4个元素
int a[0][1][4] //此处是把a[0][1]看做是一维数组的名字,它包含4个元素
int a[0][2][4] //此处是把a[0][2]看做是一维数组的名字,它包含4个元素
int a[1][0][4] //此处是把a[1][0]看做是一维数组的名字,它包含4个元素
int a[1][1][4] //此处是把a[1][1]看做是一维数组的名字,它包含4个元素
int a[1][2][4] //此处是把a[1][2]看做是一维数组的名字,它包含4个元素
2.2 : 二维数组看作是二维数组的矩阵
3:参考文献