算出来a为什么等于4啊,不是先算术运算再赋值运算吗
#include<stdio.h>
int main()
{
int a = 12, b = 7, c = 3;
printf("%d\n", a > b && b > c);
printf(" %d\n", a > b > c);
a *= a = -2;
printf(" %d\n", a);
return 0;
}
除了优先级,还有结合性。优先级相同的情况下,看结合性,赋值运算从右向左,先执行a=-2,再执行a*=a。
a *= a = -2; ===> a = a*(a = -2);