12.7 我不明白为什么我不能象这样在初始化和数组维度中使用常量: const int n = 5; int a[n];

const 限定词真正的含义是 ``只读的"; 用它限定的对象是运行时 (同常)  不能被赋值的对象。因此用 const 限定的对象的值并 不完全是一个真正的常量。 在这点上 C 和 C++ 不一样。如果你需要真正的运行 时常量, 使用预定义宏 #define (或enum)。

参考资料: [ISO, Sec. 6.4]; [H&S, Secs. 7.11.2,7.11.3 pp. 226-7]。

翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)