谁能帮我解释一下这个编程问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 15:20:52
#include<stdio.h>
void main()
{int x=2;
x+=x-=x*x;
printf(“%d\n”,x*x);}
这个程序输出的会是什么?请详细解答。急需

x+=x-=x*x;从右向左运算,
首先,x-=x*x相当于x=x-x*x,此时x=-2;
然后x+=x;即x=x+x;因为x=-2,带进去运算得到x=-4
所以输出的x*x=16

-4
上面的式子等价于:
x=x-x*x;
x=x+x;

程序中的表达式可拆分为:x=x-(x*x); x=x+x;
所以x=-4,最后结果为:
x*x=16

16,表达式得出X=-4

16