1.问题 为什么结果是0,不是-4 #include<stdio.h> int main() { int a=2; a-=a+=a*a; printf("%d\n",a); return 0; } 2. 回答 a-=a+=aa; 这条语句就相当于顺序执行以下两条句: a = a + a a; a = a - a; 其实分析到这儿,结果也就出来了: a = a - a; 不论a取何值,a都等于零。 但是,咱们还是把a = 2;带入语句中看看: 1)a = a + a* a = 2+2*2 = 6; 2)a = a - a = 6 - 6 =0; 所以结果为零。