设 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