(1)类型 : 数组名「常量表达式」「常量表达式」
int a[6][6]; //6*6 6行6列
char b[4][5]; //4*5 4行5列
double c[6][3]; //6*3,6行3列
(2)二维数组的访问:
a[0][0]; //访问a数组中的第一行第一列的元素
b[1][3]; //访问b数组中的第二行第四列的元素
**注意下标的取值范围,以防止数组的越界访问。比如 int a[3][4],其行下标的取值范围是0到2.其列下标的取值范围是0到3,超出任何一个下标的访问都是越界访问。
(3)二维数组的初始化:
由于二维数组在内存中是线性存放的,因此可以将所有的数据写在一个花括号内 int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
为了更直观的表示元素的分布,可以用大括号将每一行的元素括起来; int a[3][4]={1,2,3,4},{5,6,7,8},{9,10,11,12}
或者 int a[3][4]={
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
}
也可以只对部分元素赋初值:int a[3][4]={{1},{5},{9}};
**除了第1维的元素个数可以不写,其他的维度必须写上,不然会报错.
#include <stdio.h>
int main()
{
int a[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 };
int i, j;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++)
{
printf("%d", a[i][j]);
}
printf("\n");
}
return 0;
}
/*二维数组的初始化*/
录入成绩的一个举例:
#include <stdio.h>
int main()
{
int a[5][4] = {
{80,78,67,88},
{92,65,78,68},
{85,89,76,98},
{86,70,89,90},
{99,99,99,99}
};
printf("每位同学的成绩如下:\n");
int i, j;
for (i = 0; i < 5; i++)
{
for (j = 0; j < 4; j++)
{
printf(" %d", a[i][j]);
}
printf("\n");
}
return 0;
}
/*录入成绩*/