数值混合运算

[复制链接]
查看11 | 回复1 | 2011-7-10 15:43:07 | 显示全部楼层 |阅读模式
数据最后转换的结果都要是double型的吗?那你看看
main()
{float a=1234.00;
int b=3,c;
c=a+b;
printf("%d\n",c);
}
它的结果是1237,我感觉很郁闷跟书里面的,就是各种混合运算类型都要转换成double型的。
比如说10+‘a'+1.5-8765.1234.1234*'b'它的要先转换成double在计算啊那它最后的答案也是double型呀,可是上面我说的那道题目,感觉挺郁闷的,

回复

使用道具 举报

千问 | 2011-7-10 15:43:07 | 显示全部楼层
c语言在计算数值时,有个提升类型过程,char->short->int->浮点,以及signed->unsigned但是在赋值语句中,按左值类型进行隐式强制转换。看上面c=a+b,a是float型,b是int,所以a+b按float处理,因为c是int,所以程序相当于(int)(a+b)赋值给c...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行