c语言问题,为什么是5.0呢?明明有int强制转换啊〒_〒

2025-05-09 18:12:56
推荐回答(4个)
回答1:

问 w 的值,w 是double类型的,当然要用浮点数表示了,
虽然w=fun2()等式右边函数返回整形,但是在左边是double的时候函数结果自动转换类型为double。
总之,不管等式右边是什么值,w始终是double,就算你强转以后他还是double,强转结果不会改变 w 变量本身的类型

回答2:

确实是进行了强制转换,return(a+b)返回的也确实是int 5,然而w是double,又被转换成了浮点型,所以w的值5.0要是浮点数才行

回答3:

变量w的类型就是double,即便你的函数返回值类型为int,但是还有隐式的类型转换存在

回答4:

因为w是double型的,所以他保存的是浮点数的值
类型转换为int,但是在复制给double的时候会自动转换为double