在程序设计中,经常需要处理大批量相同类型的数据,这些数据并不是孤立的、杂乱无章的,而是具有内在联系、具有共同特征的整体,就需要将多个变量组织成一定的结构形式,即形成一定的数据结构。C语言提供了一种简单的构造数据类型——数组,用于存储规则而有序数据的集合。
7.1 数组和数组元素
1. 数组和数组元素的概念
在C语言中,数组是按照一定规则组成的有序数据的集合。数组中的每一个元素都具有同一个数据类型。数组中的每个分量称为数组元素,每个数组元素都是一个带下标的变量,也称为下标变量,数组元素个数在定义数组时指定。
在C语言中,使用数组简化了一个数据集合中各元素的命名,方便数据的存取。在程序编译时,根据数组的类型,在相应的存储区分配相应的存储空间。由于数组的特点是数组元素排列有序,并且数据类型相同,所以,在数值计算与数据处理中,数组常用于处理具有相同数据类型的、批量有序的数据。
2. 数组的表示
在C语言中,数组元素的表示方法是用数组名及其后带方括号 “[ ]” 的下标表示,例如,myarr[5],a[3][3] ,b[2][3][5] 分别表示一维数组 myarr、二维数组 a 和三维数组 b。
其中:myarr、a、b 称为数组名。数组名的定义与变量名的定义规则相同,遵循标识符的命名规则。其中,带有一个方括号的唱称为一维数组;带有两个以上方括号的分别称为二维数组、三维数组等,二维及二维以上数组统称为多维数组。
说明:
数组具有以下几个特点。
(1)相同的数据类型。在同一个数组中,每个数组元素是相同的数据类型,它们在定义数组时规定。数组的类型可以是基本类型,也可以是导出类型。
(2)下标从 0 开始,且连续存放。方括号中的下标是整型常量或整型变量,并且从 0 开始。下标表示该数组元素在数组中的相对位置。在内存中每个数组元素都分配一个存储单元,同一数组的元素在内存中连续存放,占有连续的存储单元。存储数组元素时按照其下标递增的顺序存储各元素的值。例如,上面的数组 myarr,它的第一个数组元素就是 myarr[0],其他元素依次为 myarr[1],myarr[2],myarr[3],myarr[4]。
(3)数组名是首地址。 数组名表示数组存储区域的首地址,数组的首地址也就是第一个元素的地址。 例如,上面的数组 myarr,它的首地址是 myarr 或 &myarr[0],数组名是一个地址常量,由系统统一分配,因此不能向它赋值,例如,myarr = 0x2003是错误的表示方法。
(4)数组变量与基本类型变量一样,也具有数据类型和存储类型。数组的类型就是它所有元素的类型。
(5)数组定义后,编译时无越界保护。