在使用变量之前,每个变量都应该被正确地定义和初始化(分配一个值)。然而,在某些情况下,C++会将变量设置为默认值零。就像下面的例子一样。
class A{
...
static int val;
...};
//int val = 10; //This is the usual definition.
int val;//Definition without assigning a value.
...
A a; //a class A object
std::cout<<a.val;
结果将是零。显然,编译器对变量a.val进行了初始化为零的操作。我很好奇他们一般会在什么时候这样做?