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)