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

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

分三步:1.a*a=144

              2.a-=a*a (等价于a=a-a*a→a=12-144)此时a=-132

              3.a+=a-(等价于a=a-132)此时答案=-264

不同编译器上结果可能不同,一般而言连续赋值是依照从右至左的顺序执行的,具体结果可自己编程测试~不排除报错的可能性~

从右到左,注意 右半部分是一个表达式,所以,前面的a的值要改变

C语言表达式一般从右往左计算,自己慢慢算吧

参考:http://codepad.org/dAAB9X1n

意义在哪 ? 这个意义在哪?

测试题请自己验证

妈哟。这种问题都问。你写个程序就晓得了。

结果是-264

从右到左,a^2=144, a-=144, 此步a=-132; a+=-132, 则a=-120