以下行不起作用:
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]={};
答案 0 :(得分:2)
数组初始值设定项必须是常量。
int值可以改变,因为const int值在整个程序中保持不变。
答案 1 :(得分:0)
在第二个示例中,n1
和v1
已知为编译时常量。在第一个例子中,它们可能不是。