2013-09-22 91 views
-4
int x; 
x=x+30; 
cout << x; 

輸出結果是33,爲什麼這樣呢? 我甚至沒有宣佈x爲3. 有人可以引導我嗎?謝謝!查找int x的值

+2

是否在編譯時不會產生警告?因爲它血液好,應該! –

+0

nope,它給我一個值33. – user2611244

+1

使用-Wall –

回答

4

使用未初始化的變量是未定義的行爲。由於執行怪癖的順序不可靠,你得到了33。該程序可以自由產生任何價值,無法編譯,或聘請刺客刺傷你。

0

在C++中,默認情況下給變量賦予的空間(內存分配)等於變量的大小,但默認情況下它們不會被賦予值。