一、二维数组的定义
类型说明符 数组名[常量表达式1] [常量表达式2
float a[2][3], b[4][5];
1.二维数组中元素的排列顺序是:先行后列。 因此,可以把二维数组看成是一个矩阵。
2.二维数组元素仍然是从a[0][0]开始。
二维数组中的数组元素的个数=行数×列数,存储一个二维数组所需要的内存字节数可以用下列方式来计算:
总字节数 = sizeof(类型) × 行数 × 列数
例如,语句“int a[3][4];”定义了一个3行4列的int型数组a,共有3×4=12个数组元素,存储数组a所需的内存空间为sizeof(int) × 3 × 4=48个字节。
二维数组的引用
1.数组必须先定义,后使用。
2.数组元素只能逐个引用,而不能一次引用整个数组。 数组元素的引用与同类型的一般变量使用方式一样。
3.二维数组输入/输出的一般格式。
分析以下程序的运算结果。
//FileName: chap4_7.c
#include <stdio.h>
int main( )
{
int a[3][4],i,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
a[i][j]=i*4+j;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%4d",a[i][j]);
printf("\n");
}
return 0;
}
程序运行结果如下: 0 1 2 3 4 5 6 7 8 9 10 11
二维数组:
基本形式
1.按行赋初值 例:int a[2][3]={{1,2,3},{4,5,6}}; 初始化后结果: 1 2 3 4 5 6
2.按数组元素在内存中排列的顺序对各元素赋初值 例:int a[2][3]={1,2,3,4,5,6};
3.给部分元素赋初值 例:int a[2][3]={{1},{4}}; 初始化后结果: 1 0 0 4 0 0
1.分行给二维数组赋初值。
int a[2][3]={{1,2,3},{4,5,6}};
2.按数组的排列顺序对各数组元素赋初值。
int b[2][3]={1,2,3,4,5,6};
3.可以对部分元素赋初值。
int c[3][4]={{1},{5},{9}};
int d[3][4]={{1},{5,6},{0,9,7}};
4.在对全部数组元素赋初值时,数组第一维的长度可以不指定。
int e[ ][3]={1,2,3,4,5,6};
int f[ ][4]={{0,0,3},{0},{0,10}};