这个表达式是不是有点问题

img

没有问题的,最终数据类型是 double .
但是,一开始计算 的
18/4 是整型除以整型 得整型 4。
计算步骤:
(1)18/4 = 4
(2) sqrt(4.0) = 2.0 -- sqrt() 结果是 double 型。
(3) 4 = 4.0
(4) 4.0 * 2.0 = 8.0
(5) 8.0 / 8 = 1.0
结果 是 1.0

没问题,double
sqrt返回的是double,运算符都默认转换为double

没有问题

是double

没问题,是double

问题就是一般人不会这么写

基本上这种运算,只要中间同出了个DOUBLE,结果就是DOUBLE

肯定是double啊,C语言会自动转类型

没有问题,这个是一个自带的函数,如何不同的类型会有一个自动转化机制

自左向右,c语音类型自动转换 所以会出现double类型,因为sqrt函数返回double类型

没有问题的