我正在调试一些 C++ 代码,并且遇到了一个似乎从未被赋予值的 double。它是用该行声明的
double x;
以前没有使用过 C 或 C++,我不确定双精度值是否具有默认值?即根据上面的声明,如果 x
从未被明确指定一个值,它会自动为 0,还是 null
?
x
用于代码中其他地方的计算,计算结果旨在显示给用户 - 目前它不是……计算是:
y * asin(sin(x / y) * sin(a * b));
我假设如果 x
默认为 0,这会导致编译/运行时错误吗?如果 x
默认为0,那么计算肯定会返回0,并且0会显示给用户吗?
原文由 Noble-Surfer 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您未指定初始化值,则
double x
的值如果位于堆/堆栈上则未定义。如果它是一个全局变量,它将被设置为 0。