3.2 一维数组
一维数组也称向量,用以组织具有一维顺序关系的一组同类型数据,如某个班级所有人的成绩信息,它和基本数据类型一样,在使用数组前必须先对其进行声明。
3.2.1 一维数组的声明
一维数组的声明形式如下所示。
类型数组名[N1];其中,N1必须是个整型常量,如5、10或const整型量。假定班级里有10个人,可以用下列形式声明一个数组以存储每个人的成绩。 int age[10];
这样,编译器将一次性开辟10个存放int型数据的连续内存空间,省去了声明10个int变量的麻烦,代码3.1采用一维数组存储用户输入的10个数据,很显然,用一维数组处理具有顺序关系的数据比用简单变量要方便得多。
代码3.1 使用一维数组计算平均成绩ArraySample1
<———————————————文件名:example301.cpp————————————> 01 #include<iostream> 02 int main() 03 { 04 using namespace std; 05 int age[10];//创建一个int型数组,大小为10 06 int sum=0;//声明一个int型变量sum,初始化为0 07 float aver;//声明一个float型变量aver,表示平均数 08 cout<<"请依次输入10个人的成绩:"<<endl; 09 for(int i=0;i<10;i++) 10 { 11 cin>>age[i];//接收用户从键盘输入的10个数字 12 sum+=age[i];//加和 13 } 14 aver=sum/10. 0;//计算平均值 15 cout<<"这10个人的平均成绩为:"<<aver<<endl; 16 return 0; 17 }
【代码解析】代码第5行,使用了关键字int声明一个整数型数组,其可以包含10个元素的数据。
输出结果如下所示。
请依次输入10个人的成绩: 95 66 73 82 81 90 67 64 79 98(注:键盘输入) 这10个人的平均成绩为:79.5
从代码3.1中可以看出,采用“数组名[索引(编号)]”可以单独访问数组元素,C++数组从0开始编号,上例中的10个数据可用age[0],age[1],……,age[9]来访问,数组中最后一个元素的编号比数组的长度小1,值得注意的是,C++的编译器不会检查程序使用的下标是否有效,例如,如果访问或赋值给一个不存在的元素(如代码3.1中的age[10]),编译器不会指出错误,但程序在运行的过程中可能会出现意想不到的问题。因此,保证下标不越界,保持下标的有效性是十分重要的。
注意
保证下标不越界的方法很简单,数组下标index只要满足“index大于等于0,并且小于(注意不是小于等于)数组元素的个数”即可,否则,必定会出现下标越界的情况。