
一道C语言的题。表达式 2+sqrt(16.0)/4 结果的数据类型是?
2个回答
展开全部
当一个二元操作符两侧的操作数属于不同类型时,将会把“较低等级”类型的操作数转换成“较高等级的”操作数
所以这个式子中,除法的优先级高于加法,先算sqrt(16.0)/4。因为这里sqrt的参数是小数,所以返回值是double,相应的4也被从整形提升成double,它们的商也是double,再加2的话2也会被提升成double,结果就是double啦
所以这个式子中,除法的优先级高于加法,先算sqrt(16.0)/4。因为这里sqrt的参数是小数,所以返回值是double,相应的4也被从整形提升成double,它们的商也是double,再加2的话2也会被提升成double,结果就是double啦
追问
因为这里sqrt的参数是小数,所以返回值是double 这句话是什么意思啊?为什么sqrt的返回值就是double ?
追答
不好意思我记错了,sqrt没有返回整形的,C标准库的原型就是
double sqrt (double x),所以它的返回值就是double
不过VC++的库里还有
“long double sqrt(long double)”
“float sqrt(float)”
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询