C的问题 C语言

来源:百度知道 编辑:UC知道 时间:2024/06/14 10:18:40
图里有题目

答案:D
原因:首先“*”号优先级大于“+=”与“-=”,所以先算a*a即3*3=9,
表达式变为a+=a-=9,“+=”与“-=”是赋值运算符,方向是自右向左运算,
所以先算a-=9等价于a=a-9,这时a的值是3,所以结果是a=-6,a的值变为-6,
再进行a+=a等价与a=a+a得到a=-12。
应该懂了吧~~~~

先运行a-=a*a 这个等同于a=a-a*a=3-3*3=-6
然后算a+=a 这个等同于a=a+a=-6+(-6)=-12
所以选D