5.1 数组的概念
概括地说: 数组是有序数据的集合。要寻找一个数组中的某一个元素必须给出两个要素,即数组名和下标。数组名和下标惟一地标识一个数组中的一个元素。
数组是有类型属性的。同一数组中的每一个元素都必须属于同一数据类型。一个数组在内存中占一片连续的存储单元。如果有一个整型数组a,假设数组的起始地址为2000,则该数组在内存中的存储情况如图5.1所示。

引入数组就不需要在程序中定义大量的变量,大大减少程序中变量的数量,使程序精炼,而且数组含义清楚,使用方便,明确地反映了数据间的联系。许多好的算法都与数组有关。熟练地利用数组,可以大大地提高编程和解题的效率,加强了程序的可读性。
C++用方括号来表示下标,如用s[1],s[2],s[3] 分别代表s1,s2,s3。
5.2 一维数组的定义和引用
5.2.1 定义一维数组
5.2.1 定义一维数组
定义一维数组的一般格式为
类型标识符 数组名[常量表达式];
例如
int a[10];
它表示数组名为a,此数组为整型,有10个元素。
说明:
(1) 数组名定名规则和变量名相同,遵循标识符定名规则。
(2) 用方括号括起来的常量表达式表示下标值,如下面的写法是合法的:
int a[10];
int a[2*5];
int a[n*2]; //假设前面已定义了n为常变量
(3) 常量表达式的值表示元素的个数,即数组长度。例如,在“int a[10];”中,10表示a数组有10个元素,下标从0开始,这10个元素是: a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7], a[8],a[9]。注意最后一个元素是a[9]而不是a[10]。
(4) 常量表达式中可以包括常量、常变量和符号常量,但不能包含变量。也就是说,C++不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值。例如,下面这样定义数组是不行的:
int n;
cin>>n; //输入a数组的长度
int a[n]; //企图根据n的值决定数组的长度
如果把第1,2行改为下面一行就合法了:
const int n=5;
评论