C语言:()*8.0=().0?
发布网友
发布时间:2023-11-21 17:19
我来回答
共1个回答
热心网友
时间:2023-11-24 18:46
这题目本身有点错了。
在C语言中(double)(10/4*4)会等于8.0。
这是因为
(double)(10/4*4)
=
(double)(2*4)
=
(double)(8)=8.0
问题是括号的优先级决定了括号内是先求值的,求完值后再转为double型。
如果把后面的括号去掉,就能实现正确的答案了:
(double)10/4*4
它是先将整数10转为double,成为10.0,然后再除以整数4;C系统会自动将4转为4.0再相除,得到2.5,再与4.0相乘,最后得到10.0。