2013-09-22 52 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++中,默认情况下给变量赋予的空间(内存分配)等于变量的大小,但默认情况下它们不会被赋予值。