复合运算符计算 a+=a*=a/=a-6 怎么展开?
1个回答

-的优先级较高,+=、*=、/=的优先级相等,较低,而且是右结合的.所以等效语句如下:

a = a / (a - 6);

a = a * a;

a = a + a;

在gcc下输入10,结果是8,与上面的代码相符,VC2008下也是8.

-------------------------------------------------------------

PS:如果a是int的话每次都要向下取整

第一次a = a / (a - 6) = 10 / 4 = (int)2.5 = 2

第二次a = a * a = 2 * 2 = 4

第三次a = a + a = 8

如果是float或者double就没这个步骤了