如何很好地解释为什么以下代码不正确,因为作者试图以声明方式而不是程序方式编写 C++ 代码?
const double NEWTONS_PER_POUND = 4.448;
int main()
{
double pounds, newtons;
pounds = newtons/NEWTONS_PER_POUND; /* pounds equals 'unassigned variable'/4.448 */
newtons = 10.0;
cout << pounds << endl; /* a big number, not 10.0/4.448 */
return 0;
}
作者希望cout
显示正确的计算结果,但却得到了一个“疯狂的数字”。
我将此解释为“C++ 是程序性的,因此在声明时
pounds = newtons/NEWTONS_PER_POUND;
newtons
没有被赋值。
有更好的建议吗?或者解释为什么 C++ 不够“聪明”来执行用户错误预期的行为?