您正在使用非常数变量将值分配给常数。因此,该变量的值无法确定编译时间。我知道您没有改变a
,但是编译器并不这样认为。
b和c有什么区别?
c有一个编译时间常数初始化器,而b没有。具有编译时间常数初始化程序的const对象本身就是一个编译时间常数值。
由于我可以使用常量定义一个长度的长度,所以为什么不这样做呢?
不仅任何常数都可以。const
限定符表示运行时常量(即,值可以在运行时确定,但在对象的整个生命周期中都不会改变)。只有编译时间常数值可以用作数组大小。
您正在使用非常数变量将值分配给常数。因此,该变量的值无法确定编译时间。我知道您没有改变a
,但是编译器并不这样认为。