tfsf.net
当前位置:首页>>关于设int a=12,则执行完语句a+=a-=a*a后,a的值是的资料>>

设int a=12,则执行完语句a+=a-=a*a后,a的值是

结果为:-120<br>把以下代码保存为html文件,双击运行即可知道!<br><br>&lt;script&gt;<br>var a=12;<br>alert(a+=a-=a*a)<br>&lt;/script&gt;

+=和-=的优先级是一样的,是从右到左关联的,计算过程:a+=a-=144 a+=12-144=-132 a=-132+(-132)=-264

a += a * aa = a + a * aa = a + 12 * 12到这里a 的值尚未改变所以最后a = 12 + 12 * 12 = 156相信我,错不了

做这种题要清楚运算符的优先级,这道题从右到左运算,*先算,a*a=144,再算a=a-144,得出-132,再算a=a+a,得出-264

-24

a+=a*a就是a=a+a*a;a应该得156

-264; 先执行a*a=144;然后a=a-144; 此时a=-132; 再执行a=a+(-132); a=-264 (以上为gcc编译结果) 我测试了在java中结果不是这样的,这个与具体底层实现是有关系的,有些编译器执行的时候a的值一直是12;有些就在运行过程中修改了

赋值从右往左计算,相当于执行如下语句: a=a-a*a;a=a+a;执行完第一句:a=-132 执行完第二句:a=-264 下面是实际测试结果:

第一步是a=a*a=144,第二步是a=a-a=0,第三步是a=a+a=0,答案应该是0

网站首页 | 网站地图
All rights reserved Powered by www.tfsf.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com