一维数组
概念:数组是存储一组相同类型的数据集合,包含:一维数组、二维数组、三维数组
只要是数组都有以下3点特性:
1、一致性,即数据类型必须一致;
2、有序性,数组中的数据是有顺序的,可以通过下标读取访问;
3、不可变性,即数组初始化后,其长度(存储数量)不能再变了。
一维数组可以想象为一条线段,二维数组可以想象为一个游行方阵,三维数组可以想象为魔方玩具。通常开发中很少使用三维数组。
一维数组的声明
语法:
变量类型 数组名称 [ 长度 ] = { 元素1,元素2,元素3,……,元素n } ;
以上是声明一维数组的基本语法,下面用正确的代码声明一个一维数组。
int arr [ 5 ] = { 1, 2, 3, 4, 5} ; // 这是声明了一个名为:arr 的 int 型数组,它的长度(元素容量)为 5 ,元素依次为:1 2 3 4 5。
以上是标准的一维数组声明方式,也有简化的方式:
第①其中一种是“不赋值形式”,如下:
float arr1 [ 3 ] = { }; // 数组为float类型,长度(容量)为:3,但是没有赋予数组元素值,那么编译器会自动根据变量类型,为其填充 3 个 “0.0”,如果是 int 类型,则填充 3 个“0”。
第②种简化方式,即:长度确定,但元素不给足,如下:
int arr2 [ 5 ] = { 10, 20, 30 } ; // 这种类型就是在读取前3个数据时,依次为:10 20 30 ,剩下 2 个则用 “0” 补位。
第③二种简化方式,即:不确定长度(容量),如下:
bool arr3 [ ] = { true, false, false, true, true }; // 这种情况,编译器会根据 { } 中的元素数量进行自行推导,自动判定长度为:5。
数组长度(容量)计算
之前学习过的 “sizeof()”函数获取数组的大小,用这个值除以变量类型大小,就可以得到数组的长度了,如下:
int arr2 [ 5 ] = { 10, 20, 30 } ; // 声明了一个int型数组,名称为 arr2,当然这里已经给定了长度,但是我们可以试验一下上面的公式是否正确。
cout << sizeof ( arr1 ) / sizeof ( float ) <<endl;
cout << sizeof ( arr2 ) / sizeof ( int ) <<endl;
cout << sizeof ( arr3 ) / sizeof ( bool ) <<endl;
输出结果依次为:3 5 5,和每个数组的长度一样。
注意事项:
1、在目前学习的范围中,我们的数组长度不能用变量表示,如:
int i = 3;
int arr4 [ i ] = { 1, 2, 3};
这样写会报错,这一点要注意。
2、数组是若干个相同类型变量组成的集合,所以每个变量(也可以称“元素”)都有自己的存储空间,就像自己的房间一样,想找哪个变量就要通过它的房间号访问,数组的房间号,也就是之后要用的“索引号”统统都是从“0”开始,如果这个数组长度为:5 ,它的索引号就依次是: 0 1 2 3 4。
3、在某个数组中访问变量时,一定注意不要越界,如:arr [ 3 ] 这个数组长度为:3,索引号依次:0 1 2,如果访问 2 以后的数字,或 0 以前的数字,那都会产生问题,系统可能不会报错,但是会输出一个不确定的值,即系统残留值。
以上 3 点在应用数组时需要注意




