kiliop 发表于 2021-11-22 17:16:28

番杰 发表于 2021-11-22 17:16:29

a-=a+=a*a;
这条语句就相当于顺序执行以下两条句:
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;
所以结果为零。

jhq999 发表于 2021-11-22 19:02:55

任何数减本身都等于0

小鱼儿mxkk 发表于 2021-11-22 19:12:35

本帖最后由 小鱼儿mxkk 于 2021-11-22 19:36 编辑

a-=a+=a*a;关于这一条语句,首先你要知道他是从右往左的,那么我们不妨先看看右边:a+=a*a,他的结果是什么呢?一定是a(请想一想,类似于a+=某某之类的语句,最后一定是将一个值赋给a对吧?),至于a的值是多少,我们其实不必关心,因为你应该已经发现了,再结合左边已经变成了a-=a(不要管a到底是多少!),结果不言而喻.

WilliamJoker 发表于 2021-11-24 15:07:26

a-=a+=a*aa=2a=2+2*2 a=6 a-=a a=6-6 a=0

WilliamJoker 发表于 2021-11-24 15:14:57

不是-4是因为a已经变化过了 不是初始的2了也就是
a-=a+=a*a==a=(a+a*a)-(a+a*a)
a-=a+=a*a!=(不等于)a=2-(a+a*a)

kiliop 发表于 2021-11-26 16:03:52

页: [1]
查看完整版本: c语言连续赋值的题