int a=12; a+=a-=a/=a*=a; 最后a的值到底是多少?

首先声明整个是Java的执行代码intk=12;k+=k-=k/=k*=k;System.out.println(k);//计算结果为24----------------... 首先声明整个是Java的执行代码
int k=12;
k+=k-=k/=k*=k;
System.out.println(k); //计算结果为24
----------------------------------------------------------------------
问题:如何计算?如何实现这个问题?就是每一步的计算结果及k值的变化
展开
 我来答
DoramiHe
2018-06-13 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59541
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
-264;
先执行a*a=144;
然后a=a-144;
此时a=-132;
再执行a=a+(-132);
a=-264
(以上为gcc编译结果纳袭)
我测试了在java中结果不是这样的,这个与具体底层实现是有关系的让空,有些编译器执行的时候a的值一直是12;有坦茄瞎些就在运行过程中修改了
追问
今天咨询了下,
给出了如下答案:
我们可以把k+=k-=k/=k*=k;看成整个表达式的结果值给最左边的k赋值,
所有在计算整个表达式的过程中,右边所有k的值不变
只有整个表达式的结果值得出之后,最左边的k才会再次被赋值
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式