为什么我可以使用本地声明的 const int
作为数组声明的大小,但不允许对作为数组传递的 const int
做同样的事情争论?
例如,在下面的代码中,为什么我只在第 2 行出现编译错误?
void f1(const int dim){
int nums[dim]; // line 2: errors
}
void f2(){
const int dim = 5;
int nums[dim]; // ok
}
最佳答案
数组大小应该在编译时已知。
const int
如果值在编译时未知,则局部变量可能不起作用:
void f2(){
const int dim = bar();
int nums[dim]; // error
}
在这两种情况下,const int
表示该值不会改变,而不是在编译时已知。
关于c++ - 使用 const int 作为数组大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30476227/