这种阵列声明合法吗?

时间:2012-09-16 14:29:33

标签: c++ arrays

我知道在C ++中你不能用运行时变量声明数组的大小,但我有兴趣确定以下内容是否合法:

#include directives 
const int SIZE=5;
double a[SIZE];

谢谢!

1 个答案:

答案 0 :(得分:1)

是的,它在C ++和C中都是合法的。

SIZE需要是 常量表达式 ,而在C ++ const int SIZE=5;中声明如此。
在C99中引入可变长度数组之前的C中,

const int SIZE=5;
double a[SIZE];

会产生错误,因为在这种情况下SIZE不是 常量表达 ,而只是 readonly 并且它必须是一个有效的常量表达式。