数组(array)是一种数据格式,存储多个相同类型的值。元素数目必须是整型常数、const值、常量表达式,即编译时确定的。本章后面会介绍如何使用 new 来避开这种限制。
示例:
#include <iostream>
using namespace std;
int main()
{
int list[3] = {20, 30, 5};
cout << "Size of list = " << sizeof(list) << endl;
cout << "Size of one element = " << sizeof(list[0]) << endl;
}
输出:
Size of list = 12 Size of one element = 4
4.1.1 程序说明
如果将 sizeof 运算符用于数组名,得到整个数组的字节数;如果用于元素,得到单个元素的长度(单位字节)。这表明,list 是一个数组,而 list[0] 只是一个 int 变量。
4.1.2 数组的初始化规则
只能在定义数组时才能使用初始化,以后就不能用了。例如:
int list1[4] = {3,6,8,10}; //OK
int list2[4];
list2[4] = {1,2,3,4}; //not allowed
list2 = list1; //not allowed
可以只对一部分初始化,其他将自动为0:
int list1[5] = {0}; //全为0
int list2[5] = {1,2,3}; //前三个赋值,其余两个自动为0
计算数组个数的一个方法:
int list[5] = {1,2,3,4,5};
int num = sizeof(list) / sizeof(int);
4.1.3 C++11数组初始化
示例:
int list1[4]{1,2,3,4}; //C++11方式
int list2[4] = {}; //全为0
int list3[4]{}; //全为0
C++标准模板库(STL)提供了数组替代品:vector模板类。C++11新增 array 模板类。