在java里如果m=4 n=2 那么m+=m*=n-=m*n为什么等于-20 请给出详细的步骤解答

[复制链接]
查看11 | 回复5 | 2012-11-30 10:07:56 | 显示全部楼层 |阅读模式
我在C++中测试过这段代码了,最后的结果是m=-48,说明在执行过程中m的值发生了改变,在m+=-24时,默认m=-24;所以结果为-48. 但是在JAVA中,这里m=-20.说明JAVA编译器执行的方式与C++不一样,这个估计要从编译器执行指令的方向分析! 这个问题的最终结果是设计到了语句的序列点这个问题。你可以看一下《C/C++中的序列点》这个文章,会有比较详细的介绍。 最后要说一句,这个问题本身是没有意义的,是一种unspecified的问题!...
回复

使用道具 举报

千问 | 2012-11-30 10:07:56 | 显示全部楼层
m*n=8n-=8 = -6m*=-6 = -24m+=-24 = --20; 懂了吧,就是这样算的,从左往有详细如下m* n = 4*2 =8n-=8 -->n = 2 - 8 = -6m*= -6 --> 4 * -6 = -24m+ = -24--> 4 + (-24) = -20不明白再问...
回复

使用道具 举报

千问 | 2012-11-30 10:07:56 | 显示全部楼层
z=m*n// z=8y=n-z
// y=-6x=m*y // x=-24m+=-24//返回-20...
回复

使用道具 举报

千问 | 2012-11-30 10:07:56 | 显示全部楼层
混任务...
回复

使用道具 举报

千问 | 2012-11-30 10:07:56 | 显示全部楼层
m*n=8n-=8 = -6m*=-6 = -24m+=-24 = --20;...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行