答案:-24
1、a = 4,先算a * a,表达式的值为16。
2、+和-同一优先级,因为是复合赋值运算结合性从右向左进行,所以此时算
a -= 16 (a *a 表达式的值是16)
相当于
a = a - 16;
此时a=-12
3、最后算:
a+ = -12(a-=a*a表达式的值是-12)。
相当于
a = a + (-12);
因为a = -12,所以最后的值是-24。
又来讨论这类没有意义的语句.告诉你,这样地写语句在标准C中是没有定义的.
虽然在编译器能得出结果,但是由于标准C没有明确定义,那么编译器可根据自己来作出一个规则.所以不同编译器会得出不同的结果.
请你看我回答别人的一个问题就知道了.
等于号是从右向左计算的……
不过,谁这么蛋疼,用这种表达式?