数组
如果每个数据,都需要一个新的变量才能保存的话,那么100个数据,就需要定义100个变量了。这显然不是我们希望的事情。因此,可以把单一的数据类型集合组在一起,也就是数组。
数组中可以保存多个数据,通过数据在数组中的位置来访问数据,也就是通过索引(下标)来进行访问。
定义一个数组
// 定义一个10个元素的数组
int arr[10];
按照规定来说,c++14以前,定义数组在指定元素个数的时候,必须使用一个常量表达式,非const变量不能用来定义数组。
const int a = 10;
int b = 10;
// a是一个const变量,可以
int arr1[a];
// b不是const变量,不可以
int arr2[b];
规定上应该是这样,但是真的使用的时候,会发现有些编译器确实可以不用常量表达式,也能正常定义和使用数组(这种实际情况和语法规则不符的事情,在c++中是常有发生的)。
定义数组的同时赋初值
#include <iostream>
using namespace std;
int main()
{
// 使用花括号的形式,为数组赋初值
int arr[3] = {1,2,3};
// 如同代码中所看到的这样,数组是从0开始计数的
// 也即第一个元素的下标为0
cout << arr[0] << endl;
cout << arr[1] << endl;
cout << arr[2] << endl;
// 在定义的时候如果就进行初始化,那么也可以不指定个数
int arr2[] = {1,2,3}
}
注意:数组不可以用其他数组直接赋值,必须要按照顺序,把要拷贝的数组中的每一个元素都拷贝过去。
#include <iostream>
using namespace std;
int main()
{
int arr1[3] = {1,2,3};
// 这种赋值方式是不可以的
// int arr2[3] = arr1;
// 正确的赋值要像这样
int arr2[3];
arr2[0] = arr1[0];
arr2[1] = arr1[1];
arr2[2] = arr1[2];
cout << arr2[0] << endl;
}