为什么我能够使用本地声明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
}
Run Code Online (Sandbox Code Playgroud)
数组大小应在编译时知道.
const int 如果在编译时未知该值,则局部变量可能不起作用:
void f2(){
const int dim = bar();
int nums[dim]; // error
}
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,都const int告诉该值不会改变,而不是在编译时知道它.
| 归档时间: |
|
| 查看次数: |
569 次 |
| 最近记录: |