C语言基础教程:数组的定义
数组是数目固定类型相同的若干变量的有序集合。数组这种类型的特点是组成数组的若干变量的类型必须相同,例如,int型数组中的若干元素必须都是int型。另外,数组的若干个元素在内存中是按一定顺序存放的,因此,它是有序的。
数组的定义格式如下:
(类型说明符)(数组名)[(常量表达式1)] [(常量表达式2)]
其中,<类型说明符)是用来说明数组中各个元素的类型,应该包括数据类型和存储类,不加存储类说明符的为外部的或自动的。<数组名)用来标识数组的标识符,数组名定义规则同标
识符。<常量表达式}>,(常量表达式2)”-·用来表示某维数组的元素个数。数组的维数由(数组名)后面方括号和括起的常量表达式的个数决定。有一个方括号和括起的常量表达式称为一维数组,有二个方括号和括起的常量表达式称为二维数组,依次类推,有n个方括号和括起的常量表达式的称为n维数组。常量表达式可包含常量和符号常量,不包含变量。例如,
int a[8]
a是一个一维数组的数组名,该数组是由8个int型元素组成的。又例如,
char [5];[3
b是一个二维数组的数组名,该数组是由Z5个((5X 3)char元素组成的。又例如,
Float c[2][3][4]
c是一个三维数组的数组名,该数组是由24个(2 X 3 X 47)float型元素组成的
数组元素的表示格式如下:
(数组名)二<下标1}[<下标2]
其中,(下标1`,<下标2).…可以是整型常量表达式或整型表达式。C语言中规定下标从。开始。例如,int=10中表示数组m有10个元素,每个元素是int型,这IO个元素分别表示为m [0],m[1],m[2],m[3],m[4],m[5],m[6],m[7],m[8],m9[10]将不是该数组的元素。
又例如:
char n[3][2];
表示n是一个二维数组,共有6个元素,每个元素是char型的,这6个元素是:n[0][0],n[0][1],n[1][1],n[2][0],n[2][1].N数组可以看作是一个3行2列的数组(3×2)进一步还可以把”行”看作是一种特殊的一维数组,它的每个元素(即”列”)又是一个一维数组,因此,二维数组实质上是一维数组的一维数组。例如,数组n有3行2列,可将n看成为一维的”行”数组,它有3个元素:n[叼,n[}〕和n[2二,这是”行”数组的3个元素。每个元素又是一个包含有2个元素的一维数组。这里,可以认为n[O}.n[1〕和nC幻是3个一维数组的名字。
又例如:
int p[2][3][4]
表示p是一个三维数组,共有24个元素,每个元素是int型的,这24个元素是:p[0][0],p[0][0][1],p[0][0][2],p[0][0][3],p[0][1][0],p[0][1][1],p[0][1][2],p[0][1][3],p[0][2][0],p[0][2][1],p[0][2][2],p[0][2][3],p[1][0][0],p[1][0][1],p[1][0][2],p[1][0][3],p[1][1][0],p[1][1][1],p[1][1][2],p[1][1][3],p[1][2][0]
一般常用的数组有一、二、三维,更高维数组很少使用。
数组的上述引用方法被称为数组元素的下标表示法。以后还将会看到数组元素的指针表示和指针、下标混合表示法。
数组的各个元素存放在内存单元中是按一定顺序的。上面讲到的各维数组的若干个元素的表示时,就是按照其在内存中存放的顺序给出的。对于一维数组,则按其元素的下标由小到大的顺序存放;对于二维数组,则按行的顺序存放,即先存放第一行的元素,再存放第二行的元素,依此类推,由于每一行是一个一维数组,则每行的各个元素按一维数组存放规则存放;对于三维数组和三维以上的数组,则按第一维的下标变化最慢,最右边维的下标变化最快的原则进行排序。以三维数组为例,正如前边给出的P数组的24个元素的顺序。
转载文章请注明,转载自:妍熙饭 [http://www.yanxifan.com]