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

详细解答,答案是-264,我弄不清楚了

-264。

1、先计算a-=a*a,得到a=12-12*12=-132;

2、a+=-132,得到a=-132-132=-264。

+= 加后赋值,变量+=表达式 如:a+=3;即a=a+3;-= 减后赋值,变量-=表达式 如:a-=3;即a=a-3。

赋值运算符的计算顺序是从右到左,大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。而且它的优先级别低于其他的运算符,所以对该运算符往往最后读取。

扩展资料:

优先级与求值顺序无关。如a+b && b*c,虽然*优先级最高,但这个表达式求值顺序是从左到右。

优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。

相同优先级中,按结合性进行结合。大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。

基本的优先级需要记住:

指针最优,单目运算优于双目运算。如正负号。

先算术运算,后移位运算,最后位运算。请特别注意:1 << 3 + 2 & 7等价于 (1 << (3 + 2))&7.

逻辑运算最后结合。

参考资料:

百度百科-赋值运算符

百度百科-运算符优先级

温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-03-25
a后来的值是负132。
这是一个赋值表达式,要从右向左做,也就是你要先从右边的赋值表达式开始做,注意在做的同时,变量a的值也在变。
在这个式(a+=a-=a*a)中要先做a-=a*a(这个式等价于a=a-a*a ,算一下a就等于-132了),
然后再算a+=a(注意a这时=-132)即a=a+a=-264
所以结果为-264
第2个回答  推荐于2017-11-27
giggle.
a+=a-=a*a
<=>
a+=a-=144
a+=12-144=-132
a=-132+(-132)=-264
我想这其中你的不解之处就是忽略了变量a值的变化12-> -132 -> -264本回答被提问者采纳
第3个回答  2009-03-24
就是上面说得那种,赋值运算自右至左,首先算最右面的,a*a=144,然后算中间a=a-144=-132,最后再算到a=a+a=-264,其实就是一步一步的算,不要急,耐下心来就没问题了,还有就是要搞清运算顺序…
第4个回答  2009-03-24
先计算a*a=144
然后 a=a-144=-132(此时a=-132)
最后a=a+(-132)=-132+(-132)=-264