解释C中声明性谬误的最佳方法是什么?

前端之家收集整理的这篇文章主要介绍了解释C中声明性谬误的最佳方法是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
人们如何能够很好地解释为什么以下代码不正确,因为作者试图以声明方式而不是程序性地编写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;

尚未为牛顿分配值.

还有更好的建议?或者解释为什么C不够“聪明”来执行用户错误预期的行为?

解决方法

告诉作者
pounds = newtons/NEWTONS_PER_POUND;

命令cpu

>取地址上的值称为“牛顿”
>在地址处取值“NEWTONS_PER_POUND”
>分开他们
>将结果存储在称为“磅”的地址

他正在寻找的东西很可能是命令式的功能

double newtons_to_pounds(double newtons) {
  return newtons/NEWTONS_PER_POUND;
}

...

newtons = 10.0;
cout << newtons_to_pounds(newtons) << endl;    /* a big number,not 10.0/4.448 */
return 0;
原文链接:https://www.f2er.com/c/117895.html

猜你在找的C&C++相关文章