1. 程式人生 > >全域性變數只能初始化不能賦值

全域性變數只能初始化不能賦值

  • C++中,全域性變數只能宣告、初始化,而不能賦值

    也就是說,下面這樣是不被允許的:

    
    #include <cstdio>
    
    using namespace std;
    int a;
    a = 2;
    int main() {
    
      return 0;
    }

    錯誤提示是:

    C++ requires a type specifier for all declarations
  • 宣告、初始化與賦值的區別:

    • 宣告:int a;
    • 初始化:int a = 2;(在宣告的時候順帶賦值叫做初始化)
    • 賦值:a = 2;
  • 只有定義(int a;)才分配儲存空間,初始化必須要有儲存空間來初始化

  • 全域性變數在宣告時候順帶賦值(也就是初始化)是可以的,但是如果先宣告,不賦值,之後再賦值的話,程式是執行不到這裡的,也無法通過編譯。