C ++ 2d数组初始化

时间:2013-05-08 21:20:49

标签: c++ arrays initialization

以下行不起作用:

int n1=10,v1=10;  
int f[n1][v1]={};
error: variable-sized object ‘f’ may not be initialized

但下面这行可行,为什么?

const int n1=10,v1=10;  
int f[n1][v1]={};

2 个答案:

答案 0 :(得分:2)

数组初始值设定项必须是常量。

int值可以改变,因为const int值在整个程序中保持不变。

答案 1 :(得分:0)

在第二个示例中,n1v1已知为编译时常量。在第一个例子中,它们可能不是。