我正在阅读Lappman的"C++ Primer"一书.在第113页它说
数组中元素的数量是数组类型的一部分.因此,必须在编译时知道维度,这意味着维度必须是常量表达式.
此外,它说我们不能做这样的事情
unsigned cnt = 43; //not an const expression
string bad[cnt]; // error
Run Code Online (Sandbox Code Playgroud)
但事实并非如此,我编译它没有任何问题,我甚至可以做到这样的事情
int i;
cin >> i;
get_size(i);
void get_size(int size) {
int arr[size];
cout << sizeof (arr);
}
Run Code Online (Sandbox Code Playgroud)
它运行良好,为什么每本书都说在编译时必须知道数组大小?或者它必须是const表达式?