一道C语言的题.表达式 2+sqrt(16.0)/4 结果的数据类型是?

一道C语言的题.表达式 2+sqrt(16.0)/4 结果的数据类型是?
A.Double B.int C.char D.void
magic0828 1年前 已收到1个回答 举报

qinyinwu 幼苗

共回答了23个问题采纳率:91.3% 举报

当一个二元操作符两侧的操作数属于不同类型时,将会把“较低等级”类型的操作数转换成“较高等级的”操作数
所以这个式子中,除法的优先级高于加法,先算sqrt(16.0)/4.因为这里sqrt的参数是小数,所以返回值是double,相应的4也被从整形提升成double,它们的商也是double,再加2的话2也会被提升成double,结果就是double啦

1年前 追问

5

magic0828 举报

因为这里sqrt的参数是小数,所以返回值是double 这句话是什么意思啊?为什么sqrt的返回值就是double ?

举报 qinyinwu

不好意思我记错了,sqrt没有返回整形的,C标准库的原型就是 double sqrt (double x),所以它的返回值就是double 不过VC++的库里还有 “long double sqrt(long double)” “float sqrt(float)”
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.029 s. - webmaster@yulucn.com