为什么c语言表达式中 5+1/2 等于5

 我来答
mafangsan
推荐于2017-10-14 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1万
采纳率:71%
帮助的人:2553万
展开全部

5+1/2在C语言中确实等于5。

 

原因如下:

  • /是C语言中算术运算符中的除号;

  • 该符号同时具有整数除和实数除的功能,当两个运算对象都是整数就做整数除,有一个运算对象是浮点数时就执行实数除。

  • 所谓整数除就是舍弃余数,只留下商;因此5/2的结果是2,而5.0/2的结果是2.5。

     

显然1/2是整数除,商位0,所以5+0还是等于5。

百度网友8ad2c1d
2012-11-16 · TA获得超过402个赞
知道小有建树答主
回答量:261
采纳率:0%
帮助的人:125万
展开全部
1/2为整除,值为零,所以式子等价于5+0,结果为5 。
之所以会出现这样的情况是因为1和2都为整型数,直接相除其结果也为整形,而0.5转换为整形后为0,所以最终值为5。如果想要得到5.5这个值的话可以通过一个格式的自动转换过程,让除数与被除数中的一个成为浮点型数据,即5 + 1.0 / 2 或者 5 + 1 / 2.0。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
柯楣楣08
2012-11-16 · TA获得超过100个赞
知道答主
回答量:53
采纳率:0%
帮助的人:51.4万
展开全部
这个四则运算中,除法的优先级是高于加法的,先做1/2,由于1和2都是整数,所以除法的结果也是整型,为0. 0+5=5,所以最后的结果是5
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
张新香666
2012-11-16 · TA获得超过105个赞
知道答主
回答量:97
采纳率:0%
帮助的人:72.7万
展开全部
在这里5、2、1都是整型、、1/2=0.5,变成整型的话就是0,所以结果为5、、
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我若在床边
2012-11-16 · TA获得超过388个赞
知道小有建树答主
回答量:189
采纳率:0%
帮助的人:103万
展开全部
5+1/2

1/2优先级高先执行,执行后因为1和2被系统默认整形,隐式转换0.5->0

5+0=5
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式