定义二维数组的一般形式为:
类型说明符 数组名 【常量表达式1】 【常量表达式2】;
其中:常量表达式1为行数;常数表达式2为列数
例如:float a[3] [4],b[5] [10]。
注意:1.一对方括号内不能写两个下标。
例如:float a[3,4] 错误
2.数组元素个数必须是常量表达式,不能使用变量。
例如:int i=2;j=4;
int a[i][j]; 错误
3.用于定义数组长度的常量表达式必须为大于零的正整数。
二维数组可被看做一种特殊的一维数组:它的元素又是一个一维数组。
例如:float a[3][4];可以把a看作一个一维数组,它有3个元素:a[0],a[1],a[2],每个元素又是一个包括4个元素的一维数组:
a[0]-----a[0][0] a[0][1] a[0][2] a[0][3]
a[1]-----a[1][0] a[1][1] a[1][2] a[1][3]
a[2]-----a[2][0] a[2][0] a[2][2] a[2][3]
C语言中,二维数组中元素在内存中排列顺序是按行存放的。
二维数组的初始化
1.分行给二维数组赋初值。(最清楚直观)
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
2.可以将所有数据写在一个花括号内,按数组元素在内存中的排列顺序各的元素赋初值。
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
3.可以对部分元素赋初值。
int a[3][4]={{1},{5},{9}};
也可以对各行中的某一元素赋初值,如:
int a[3][4]={{1},{0,6},{0,0,0,11}};
也可以指对某几行元素赋初值。如:
int a[3][4]={{1},{5,6}};
4.如果对全部元素都赋值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省。
二维数组的引用
二维数组元素引用与一位数组元素引用一样,也要采用下标法。
二维数组元素的引用形式: 数组名【下标1】 【下标2】
说明:下标1和下标2可以是整型常量、整型变量和整形表达式。其编号从零开始。
注意:下标不要越界