二维数组
类型说明符 数组名[常量表达式][常量表达式];
e.g: float twoDimenArry[3][4];
-
一维数组中每个元素对应一个数组
-
二维数组名:二维数组地址(twoDimenArry)
-
二维数组名[x]:二维数组中x元素中数组的名,也是其首地址(twoDimenArry[0], twoDimenArry[1]…)
twoDimenArry[0] == &twoDimenArry[0][0]
twoDimenArry[1] == &twoDimenArry[1][0] … -
初始化:
int arry1[2][3]={{1,2,3},{4,5,6}};
int arry2[2][3]={1,2,3,4,5,6};
int arry3[3][4]={1,2,3};
int arry4[3][4]={{1},{2},{3}};
int arry5[3][4]={{1},{0,2},{0,0,3}};
int arry6[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
输出
arry1:
1 2 3
4 5 6
arry2:
1 2 3
4 5 6
arry3:
1 2 3 0
0 0 0 0
0 0 0 0
arry4:
1 0 0 0
2 0 0 0
3 0 0 0
arry5:
1 0 0 0
0 2 0 0
0 0 3 0
arry6:
1 2 3 4
5 6 7 8
9 10 11 12
- 未负值的元素自动填充“0”
- !初始化时常量表达式一(row)可以不写,第二个(column)不行
====================================================================================
二维数组与函数
- 函数参数列表:(使用二级指针方式记录在此篇)
函数类型 函数名(数组类型 数组名[(常量1)][常量2]){.....}
调用:函数名( 数组名/数组元素首地址(&array[0][0]) )
函数定义中 常量2一定要声明,此类同于一维数组,可以不声明一维数组大小,但对于每个一维数组中的数组大小要声明。当缺失常量2,gcc会给予以下提示:
对于多为维数组,除了第一维度,其他维度必须有界