日期:2014-05-20  浏览次数:20705 次

一个小问题,关于复合赋值运算
int   i=12;
i+=i-=i*=i;

i   应该是多少呢?

在C语言里面结果运行是0.但在java里却是-120

请教为什么?


------解决方案--------------------
int i=12;
i+=i-=i*=i;
就是 i= i+i-i*i;?
所以i=-120
c不清楚;
------解决方案--------------------
i+=i-=i*=i;
它会拆成如下的运算
int a=i*i;
int b=i-a;
i=i+b;