C语言中,设int x=4;表达式 x+=x*=x+1的值为什么是40???

2025-03-20 03:14:44
推荐回答(2个)
回答1:

x+=x*=x+1是复合赋值表达式,右结合性,即从右往左运算。

x*=x+1等价于
x = x * (x + 1)
即 x = 4 * ( 4 + 1) = 20。注意,此时x已经是20了。
再执行x+=y,此时的y是x*=x+1的执行结果,即20。
x+=y等价于
x = x + y
即 x = 20 + 20 = 40

回答2:

x+1=5,所以,
x*=5 为x=4x5=20
x+=20.所以x=20+20=40