【答案】 a = -12
【解析】:
运算符优先级,赋值运算符的优先级 从右到左计算
a - = a*a → a = a - a*a = 3 - 3*3 = -6
a +=a = a+a = -6 -6 = -12
#include<stdio.h>
int main(void) {
int a = 3;
a +=a-=a*a;
printf("a=%d",a);
return 0;
}
这题考察的是运算符的优先级和结合方向
int a = 3;
a += a -= a*a;
本题中运算符的优先级从大到小是:* -= ( += ) //()代表优先级一样
结合方向都是从右到左。
所以说执行顺序是: a += a -= a * a----> a += a = a - a * a --> a += a = -6 --->a =a +a =-12;
即从右边开始算就可以得出-12