数组是n(n>1)个相同类型的数据元素a1,a2,…,an构成的有限序列,且该有限序列存储在一块地址连续的内存单元中。由此可见,数组的定义与采用顺序存储结构的线性表相似。
一维数组可看成是一个线性表或一个向量,它在计算机内是存放在一块连续的存储单元中,适合于随机查找。这在线性表的顺序存储结构中已经介绍过。
二维数组可以看成是这样的一个线性表:它的每个数据元素又是一个线性表。
图4-6 二维数组
|
同理,一个三维数组可以用其数据元素为二维数组的线性表来定义。依此类推,n维数组是数据元素为n-1维数组的线性表。多维数组可以看成是由多个线性表组成的。
一般把三维或三维以上的数组称为多维数组。
多维数组的定义也很简单,以二维数组为例,其类型定义如下:
#define M /*最大行数*/
#define N /*最大列数*/
typedef ElemType MatType[M][N];
注意:在C语言中,数组的下标从0开始。
数组一旦被定义,它的维数和维界就不再改变。因此,除了结构的初始化和销毁之外,数组只有存取元素和修改元素值的操作。