int a = 5;
const int b = a, c = 4;
int e[a];
int d[b];
int f[c];
f[c]
的定义是有效的。变量
b
也是常量int
,但是编译器给我的错误是int d[b]
行“表达式必须具有常量值”。 b
和c
有什么区别? 最佳答案
c有一个编译时间常数初始化器,而b没有。具有编译时间常数初始化程序的const对象本身就是一个编译时间常数值。
不仅任何常数都可以。 const
限定符表示运行时常量(即,该值可以在运行时确定,但在对象的整个生命周期中都不会改变)。只有编译时间常数值可以用作数组大小。
关于c++ - 我可以使用常量定义数组的长度,那么为什么int d [b]不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58859269/