如果每个数据,都需要一个新的变量才能保存的话,那么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; }