1二维数组的定义和使用
1二维数组的定义
二维数组的声明与一维数组相同,一般形式如下:
数据类型 数据名[常量表达式1][常量表达式2]
其中,“常量表达式1”被称为行下标,“常量表达式2”被称为列下标。如果有二维数组a[m][n] ,则二维数组的下标取值范围如下:
*列下标的取值范围0~n-1
*行下标的取值范围0~m-1
*二维数组的嘴阀下标元素是a[n-1][m-1]
例如,定义一个3行4列的整形数据
int a[3][4];
上述代码中声明了一个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]。
2.二维数组的应用
二维数组的应用一般形式如下:
数组名[下标][下标]
注:二维数组的下标可以是整形常量或整形表达式
例如,对一个二维数组的元素进行引用
a[2][3];
3.二维数组的初始化
二维数组和一维数组一样,也可以在声明时对其进行初始化。
(1)可以将所有数据写在一个大括号内
int a[2][2]={1,2,3,4};
如果大括号内的数据少于数组元素的个数,则系统将默认后面未被赋值的的元素赋值为0。
(2)在为所有元素赋初值时,可以省略行下标,但是不能省略列下标。
int a[][3]={1,2,3,4,5,6};
系统会根据数据的个数进行分配,一共有6个数据,而数组每行分为3列,当然可以确定数组为2行。
(3)也可由分行给数组元素赋值
int a[2][3]={1,2},{1,2,3}
在分行赋值时,可以只对部分元素赋值
int a[2][3]={1,2},{2,5};
(4)二维数组也可以直接对数组元素赋值。
int a[2][3];
a[0][0]=1;
a[0][1]=2;
例1、使用二维数组保存数据
#include "stdio.h"
main()
{
int a[2][3];
int x,y;
for(x=0;x<2;x++)
{
for(y=0;y<3;y++)
{
printf("a[%d][%d]=",x,y);
scanf("%d",&a[x][y]);
}
}
for(x=0;x<2;x++)
{
for(y=0;y<3;y++)
{
printf("%d\t",a[x][y]);
}
printf("\n");
}
}