2015-06-15 16 views
1
#include <iostream> 
using namespace as std; 

int x; 
x=10; 

int main() 
{ 
cout<<x<<endl; 
return 0 
} 

聲明全局變量,這給出了一個錯誤,但如果我使用:的定義和C++

int x=10; 

代替:

int x; 
x=10; 

它工作正常。 任何人都可以指出這個問題嗎?編譯器讀取錯誤:

expected constructor, destructor, or type conversion before '=' token compilation terminated due to -Wfatal-errors.

回答

2

在對功能主體可以僅聲明的(INT X)或聲明和初始化(INT X = 10)的變量。在這裏,您試圖將一個值(x = 10;)賦予之前聲明的變量。

+0

如果我寫int x; X = 10;在main()內部,那麼它的工作原理。所以你的意思是你上面說的東西只適用於全局變量。 –

+0

是的,它只適用於全局變量。只有全局變量可以在main()或其他函數的主體之外聲明。 –