<类型说明符> <数组名>[常量表达式1][常量表达式2];
其中“常量表达式1”表示第一维下标的长度,“常量表达式2”表示第二维下标的长度。例如,“int a[3][4];”说明了一个三行四列的数组,数组名为a,其下标变量的类型为整型。该数组的下标变量共有3×4个,即:
a[0][0]、a[0][1]、a[0][2]、a[0][3]
a[1][0]、a[1][1]、a[1][2]、a[1][3]
a[2][0]、a[2][1]、a[2][2]、a[2][3]
二维数组初始化也是在类型说明时给各下标变量赋以初值,可按行分段赋值,也可按行连续赋值。例如一个学习小组有5个人,每个人有三门课的考试成绩。求全组分科的平均成绩和各科总平均成绩。
课程 Math English C++
No.1 80 75 99
No.2 61 65 72
No.3 59 63 71
No.4 85 87 91
No.5 76 77 86
可设一个二维数组a[5][3]存放五个人三门课的成绩。
① 按行分段赋值可写为:
int a[5][3]={ {80,75,99},{61,65,72},{59,63,71},{85,87,91}, {76,77, 86}};
② 按行连续赋值可写为:
int a[5][3]={ 80,75,99,61,65,72,59,63,71,85,87,91,76,77,86 };
二维数组的元素也称为双下标变量,其表示的形式为:
数组名[下标][下标] 其中下标应为整型常量或整型表达式。
例如:如果第三个学生的数学成绩变成了100分,可以按如下赋值:a[2][0] = 100;
最后还可由初始化数据来确定数组最高维,如
int matrix[ ][4]={1,3,5,7,2,4,6,8,3,5,7,11};
结果定义的matrix是三行四列的数组,只能最高维省略。
例9.1.4 针对数组定义“int data[10];”,下列表述中错误的是( )。[2005年4月 选择第18题]
A.用*data可访问到数组的首元素 B.用data[9]可访问到数组的末元素
C.用data[10]访问数组元素会超出数组边界 D.data共有10个元素,其首元素是data[1]
答案:D
例9.1.5 以下程序的输出结果是( )。
main()
{
int i, a[10];
for(i=9;i>=0;i--) a[i]=10-i;
printf("%d%d%d",a[2],a[5],a[8]);
}
A.258 B.741 C.852 D.369
答案:C
例9.1.6 以下数组定义中不正确的是( )。
A.int a[2][3]; B.int b[][3]={0,1,2,3};
C.int c[100][100]={0}; D.int d[3][]={{1,2},{1,2,3},{1,2,3,4}};
答案:D