与vector 类似,数组也是容器。
数组的缺陷:
1、长度固定
2、没有size 操作,故,无法获取容器大小
3、没有push_back 操作,无法向其添加元素
4、无法更改数组长度,只能创建新的更大的数组,然后,将原数组复制到新数组。
数组维数,必须是大于1 的常量表达式。
也就是说,必须是在编译时,就知道的值。如:const unsigned buf_size = 512;
凡是在运行时才知道的值,都不能定义数组的维数。
const unsigned buf_size = 512, max_files = 20;
int staff_size = 27;
char input_buffer[buf_size]; // 正确, buf_size 是 const
string fileTable[max_files + 1]; // 正确, max_files+1 是常量表达式
const unsigned sz = get_size(); // 错误,get_size() 在运行时才知道,结果值
double salaries[staff_size]; // 错误,staff_size 非const
int test_scores[get_size()]; // 错误,同 get_size()
int vals[sz]; // 错误,同 get_size()
显示初始化数组:
// 显示初始化
const unsigned array_size = 5;
int iarr[array_size] = {0, 1, 2, 3, 4};
// 省略维数
int iarr2[] = {0, 1, 2, 3};
// 相当于:{1, 2, 3, 0, 0}
int iarr3[array_size] = {1, 2, 3};
// 相当于