-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.
逻辑运算最后结合。
参考资料:
百度百科-赋值运算符
百度百科-运算符优先级
-264;
先执行a*a=144;
然后a=a-144;
此时a=-132;
再执行a=a+(-132);
a=-264
(以上为gcc编译结果)
我测试了在java中结果不是这样的,这个与具体底层实现是有关系的,有些编译器执行的时候a的值一直是12;有些就在运行过程中修改了
结果为:-120
把以下代码保存为html文件,双击运行即可知道!
int a=12
故
a-=144,得a=0
a+=0
a=0
144