设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为?

 我来答
否极泰来后续
2013-01-08 · TA获得超过253个赞
知道答主
回答量:90
采纳率:40%
帮助的人:24.9万
展开全部
由于运算符*的优先级比+,-的优先级高,而且算术运算是左结合性,所以先做i*f。在C语言中,不同类型的变量在进行算术运算时,float型的变量要无条件的转化为double型。这样f转化为double(双精度型)型并与也为double(双精度型)的i相乘,得到double(双精度型)的值。之后,算10+‘a"。由于'a'为字符型,C语言规则,字符型数据在参加算术运算是要无条件的转化为int(整形)。这样10+’a'就为整型。最后10+'a'的值与i*f相加。10+‘a'为整型,i*f为double(双精度型)。由于double(双精度型)比整形高,所以整型变量自动变为double型。两个double(双精度型)的数相加,和仍为double(双精度型)。类型char->int->unsigned->long->double<-float这样转换的原因是为了尽可能的使得到的结果精度高。
百度网友3f9d5e5
推荐于2017-12-16 · TA获得超过326个赞
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:126万
展开全部
提升类型之后结果为双精度型。
更多追问追答
追问
为什么要提升提升类型呢?难道是那里有定义吗?谢谢,呵呵
追答
不同类型之间进行运算要提升类型,例如int型加上double型,int要先提升到double型才能相加。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
陌路盡頭
2013-01-05 · 超过10用户采纳过TA的回答
知道答主
回答量:26
采纳率:0%
帮助的人:21.3万
展开全部
双精度型,和最高的保持一致。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hykhjk
2013-01-05
知道答主
回答量:46
采纳率:0%
帮助的人:23.3万
展开全部
是自动往高精度的方向装换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
blue蓝08
2013-01-04
知道答主
回答量:4
采纳率:0%
帮助的人:6078
展开全部
实型
因为i*f是实型
追问
这是什么原理,难道最后是什么类型就是什么类型吗?这样这道题岂不是很没意义?呵呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式