C语言支持多维数组,最常见的是二维数组,主要用于表示二维表和矩阵。
1、定义
二维数组稍微定义形式为:
类型名 数组名[行长度][列长度];
例如;
int a[2][2]; //定义了一个二维数组a,共2行2列,4个元素。
2、引用
引用二维数组的元素要指定元素的两个下标,即行下标和列下标,即;
数组名[行下标][列下标]
行下标和列下标的合理取值范围为[0,长度-1],注意下标不要越界。
二维数组的元素在内存中按行优先方式存放,即先放第0行的元素,接着再放第一行的元素......其中每一行的元素再按照列的顺序存放。
由于二维表的行(列)下标是从0开始的,而矩阵或二维表的行(列)是从1开始的,用二维表表示二维表和矩阵时,就存在着行列计数不一致的情况。为解决这个问题,可以吧矩阵或二维表的行列也看成从0开始的。
3、初始化
分行赋值的一般形式为:
类型名 数组名[行长度][列长度]={{初值表0},..,{初值表k}...};
把初值表K中的数据依次赋给第K行的元素。例如;
int a[3][3]={{1,2,3},{4,5,6},{7,8,9}};
顺序赋值的一般形式为;
类型名 数组名[行长度][列长度]={初值表};
根据数组元素在内存中的存放顺序,把初值表中的数据依次赋给元素。例如;
Int a[2][2]={1,2,,3,4};
其等价于
int a[2][2]={{1,2},{3,4}}
如果只对部分元素赋值,要注意初始表中数据的书写顺序。例如:
static int b[3][3]={1,2,3,0,0,0,4,5};
等价于
static int b[3][3]={{1,2,3},{},{4,5}};
由此可见,分行赋值的方法直观清晰,不易出错,是二维数组最常使用的方法。
4、使用二维数组编程
定义一个3*2的二维数组a,数组元素的值由下式给出,按矩阵的形式输出a。
a[i][j]=i+j.
|
|