C语言中a+=a-=a*=a答案是多少?

来源:百度知道 编辑:UC知道 时间:2024/05/17 20:08:22
写出具体算法
a值为12

a初值为12时,a+=a-=a*=a结果为0步骤:这个表达式的运算是从右向左的:1. a*=a:a=a*a=12*12=1442. a-=144: a=a-144=144-144=03. a+=0: a=a+0=0+0=0。

结果为0.
连续赋值运算,计算顺序是自右至左的。
所以 a+=a-=a*=a计算顺序是
1 a*=a;
2 a-=a;
3 a+=a;
也就是
1 a=a*a;
2 a=a-a;
3 a=a+a;
可以看到,无论a值是多少,第一步的结果是多少,到第二步的时候,a的值都会是0.所以最终结果,也就是第三步的结果,仍为0。
最终a为0。

这里的a赋值10,这个式子从右往左算,先看a=a*,它表示为:a*=a<=>a=a*a=100,a-=a<=>a=a-a=100-100=0,a+=a<=>a=a+a=0+0=0。如此计算,记住要点为a*=b<=>a=a*b。

a的初值呢?
a初值为12时,a+=a-=a*=a结果为0

步骤:
这个表达式的运算是从右向左的:
1. a*=a:a=a*a=12*12=144
2. a-=144: a=a-144=144-144=0
3. a+=0: a=a+0=0+0=0

在这里说明一点,赋值运算,从右往左开始
记住:只要a被重新赋值过,那么意味着下次运算a的值已经变了。
首先a=a*a;12*12=144,a被重新赋值为144;
然后a=a-a;144-144=0,a被重新赋值为0;
最后a=a+a;0+0=0,a的值依然赋值为0;