【发布时间】:2014-10-11 05:16:46
【问题描述】:
以下合法吗?
const int n=10;
static int array[n];
如果是,那么为什么以及如何?
【问题讨论】:
-
数组不是可变长度的。
n是常量表达式,其值在编译时已知。 -
使用 static 或 extern 存储类说明符声明的数组对象不能具有可变长度数组 (VLA) 类型。请参阅问题为什么不能将静态数组的大小设为可变? [重复]
-
@R Sahu:这是不正确的。在 C 语言中,
const对象不符合编译时常量的条件。这是 C 和 C++ 语言之间的一个重要区别。
标签: c constants static-array