開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev c++,VS 問題(Question): 一開始是遇到了這個問題 int a = 10; int b = a; int main(){return 0;} 在C是不行的,錯誤訊息: initializer element is not constant C++則沒問題 所以我改成 const int a = 10; int b = a; int main(){return 0;} 依舊是不行 查了一下知道了大概的理由,但還是有點不知所以 看完後的理解是: C在初始化全域變數時需要constant expressions,因為他是存在Data segment 然後在C++初始化全域變數時則不需要 至於加了const後還是不行則是因為在C裡不算是標準的constant expressions 他需要compile-time constant(全域變數是在compile time初始化的) (以上是從stackoverflow不同回答拼湊出來的想法 不知道有沒有哪裡理解錯?或是能幫我多做補充的 謝謝!