【发布时间】:2016-10-26 09:19:34
【问题描述】:
我有这个code:
double val1;
double val2 = 0.0;
if(val1 != val2) {
cout << "different: " << val1 << " | " << val2 << endl;
}
输入if-statement。我认为val1 默认情况下不会得到 0.0(即 NULL)。它得到什么价值?我一直以为 0.0 是默认的...
【问题讨论】:
-
该位置的堆栈上发生了什么。自动变量没有默认初始化。
-
好吧,你总是想错了。
-
值
0.0不等于NULL。 -
在其他一些语言中默认为 0.0,但在 C++ 中不是。
-
使用调试标志编译也可能使其为 0,但在发布时不会。通常在 C++ 中。始终初始化您的变量(至少是原始数据类型)。