1.题目:设int a=10;则执行语句a+=a-=a+a;后a的值是?
2.举栗子:x=x*(y+8)→x8=y+8(拆解表达式一定要+括号,否则影响计算顺序结果错误)
2.代码+分析:
#include <stdio.h>
void main() {
//设int a=10;则执行语句a+=a-=a+a;后a的值是?
int a = 10;
printf("%d\n", (a += a -= a + a));
//分析:拆解表达式,注意加括号,赋值运算符是右结合
//1.先看a-=a+a可以拆分成:a=a-(a+a)计算a=10-(10+10)=-10
//2.接着a+=a进行扩展:a=a+a=-10+(-10)=-20
//输出-20
}