设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型是什么,多谢各位大
1个回答
展开全部
表达式结果是双精度类型。
在C语言中,若参与运算量的类型不同,则先转换成同一类型,然后进行运算。转换按数据长度增加的方向进行,以保证精度不降低。
因此,在表达式中,10+'a'+i*f,当10+'a'时,'a'字符型会自动转换为整型,i*f运算时自动转换为双精度类型,10+'a'+i*f表达式结果自动转换为双精度类型。
扩展资料:
自动类型转换的相关规则:
1、所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。
2、在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度,丢失的部分直接舍去。
3、执行算术运算时,低类型(短字节)可以转换为高类型(长字节);例如: int型转换成double型,char型转换成int型等等。
参考资料来源:百度百科-强制类型转换
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询