【发布时间】:2015-05-28 06:54:44
【问题描述】:
我目前正在阅读 Lappman 的《C++ Primer》一书。在第 113 页它说
数组中元素的数量是数组类型的一部分。因此,维度必须 在编译时已知,这意味着维度必须是常数 表达。
另外它说我们不能做这样的事情
unsigned cnt = 43; //not an const expression
string bad[cnt]; // error
但这不是真的,我编译它没有任何问题,我什至可以做这样的事情
int i;
cin >> i;
get_size(i);
void get_size(int size) {
int arr[size];
cout << sizeof (arr);
}
而且效果很好,那么为什么每本书都说必须在编译时知道数组大小?还是必须是const表达式?
【问题讨论】:
-
@juan:如果使用 Stack Overflow,请尝试在答案部分发布问题的答案。
-
@LightnessRacesinOrbit 我选择了一个合适的副本。人多的时候很难选择。