C语言 设有语句int a=4;则执行了语句a+=a-=a*a后,变量a的值是多少?

RT标题打的有点不清楚a+=a-=a*a
2024-11-10 13:05:40
推荐回答(3个)
回答(1):

答案:-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。

回答(2):

又来讨论这类没有意义的语句.告诉你,这样地写语句在标准C中是没有定义的.
虽然在编译器能得出结果,但是由于标准C没有明确定义,那么编译器可根据自己来作出一个规则.所以不同编译器会得出不同的结果.
请你看我回答别人的一个问题就知道了.

回答(3):

等于号是从右向左计算的……
不过,谁这么蛋疼,用这种表达式?