2011-04-04 16 views
1

我的C++有点生疏,所以Visual C++ 2005中的一个简单问题 - 本地(函数)int和双变量默认或初始化为0?Visual C++ 2005 - 是默认或不是初始化为0的本地int和双变量?

的是,在下面的代码的权利:

void Foo() 
{ 
int a, b, c = 0; 
double d, e, f = 0.0; 
} 

c和f被初始化为0和0.0分别而B,C,d和e是未初始化的,并且将可能含有一些垃圾在编译时所有优化的发布模式都在?

+0

它们在Debug版本中随字节值0xcc初始化,随机在Release版本中生成。你正在使用C++,习惯于在它被赋值的代码行声明变量。 – 2011-04-04 12:57:10

回答

7

默认情况下,它们未初始化。 a,b,d和e将被初始化。

3

自动局部变量没有初始化,除非他们在代码中明确初始化,或者是类型的默认构造函数

欢呼&心连心,

0

它们包含一些垃圾值,除非某些值初始化。无论他们是本地还是全球。