- 真颛
-
方向从右至左
一点一点算就知道结果应该是0了
算a*=a 得出a=12*12=144 ,此时a已经等于144
算a-=a 得出a=144-144=0,此时a已经等于0
算a+=a得出 a=0+0=0
- 苏萦
-
在java中运算出来是-120
在c++中运算出来的结果是0
- CarieVinne
-
不同意 烟花飘飘
a+=a-=a*=a
方向从右至左
先算 a*=a 得出a=12*12=144 ,此时a已经等于144
算a-=a 得出a=144-144=0,此时a已经等于0
算a+=a得出 a=0+0=0
结果答案是0
- 你这是干啥嘛
-
运算方向是自左向右去结合 最后的结果是-120
- 兔狮喵
-
a += a -= a *= a;等价于{a +=[ a -= (a *= a)]};
赋值运算符: 自右至左
1:a *= a的运算,相当于a = a * a,a的值为12*12=144;
2:a -= a 的运算,相当于a = a - 144,a的值为144-144=0;
3:a +=a 的运算,相当于a = a + 0, a的值为0+0=0;
所以此表达式结果为0
- Chen
-
严重同意…烟花飘飘…的解题过程.
赋值运算符是右结合的.不要被长式子吓倒,分步计算.
- 二分好久没看
-
虽然我相信结果是-120;可是实际的运行结果却是 0.
wd@0056bb5982bc477 ~/c
$ cat simple3.c
main(){ int a=12; a+=a-=a*=a; printf("%d ",a);}
wd@0056bb5982bc477 ~/c
$ gcc -o simple3.exe simple3.c
wd@0056bb5982bc477 ~/c
$ ./simple3.exe
0
- 十年阿桑
-
方向是从右向左
- 北境漫步
-
方向是从右向左288
- gitcloud
-
a+=a-=a*=a
先算 a*=a 得出a=12*12=144
算a-=a 得出a=12-144=-132
算a+=a得出 a=12+(-132)=-120