c语言中a+=a-=a*a怎么运行

int a=3;

赋值是从右到左运行。

先计算a*a=9,此时a=3,没变。

然后计算a-=9,此时a=-6,a值改变。

最后计算a+=-6,a=-12。a的最终值为-12。

更多的详细资料请参考运算符的优先级进行推理:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-29
先运行a-=a*a;
此时,相当于a=a-a*a;
这个表达式的值是-6,算完了a的值也是-6.
后算a+=(-6),相当于a=a+(-6),算完a的值为-12,表达式的值也是-12.
不明白可以追问。追问

你好 再问下 int a=-11,b=10;
a/=b/=4;
求a b 的值 这个又怎么算。。

追答

同样的,先算b/=4,就是b=b/4,结果是2,
再算a/=(2),就是a=a/2,结果是-5
不要迷信标准答案,可以敲代码运行一下,我在回答别人的问题时都会运行一下,不然有可能误导别人,做编程要严谨。

第2个回答  2013-03-29
你好 再问下 int a=-11,b=10;
a/=b/=4;
求a b 的值 这个又怎么算。。

这个也是现算后面的啊10/4等2(整除)
然后-11/2=-5

如果觉得还行的话给个采纳 谢谢追问

但是答案说是 5 和-2啊。。

追答

不可能,是你写错了吧。。。我去试了一下啊 是-5 和2啊 实在不行你把你代码发上来吧

追问

不用了 谢谢咯

追答

= =! 可以了么?

本回答被提问者采纳
第3个回答  2013-03-29
赋值语句是从有到左运行,先计算a*a=9,记住,此时a=3,没变。a-=9,此时a=-6,a值变化了。
然后计算a+=-6,a=-12.追问

你好 再问下 int a=-11,b=10;
a/=b/=4;
求a b 的值 这个又怎么算。。

追答

先算b=b/4 = 2, 再算a=a/2 =5 a =5,b=2

相似回答