x=2;
1先计算x%=4;相当于x=x%4这个时候x=2了。
2再计算x/=x%=4;这个时候x=2,且x%=4;这一块也等于2了,所以x/=2; x=x/2; x=2/2;x=1;
3后计算x+=x/=x%=4;前面的一部分(x/=x%=4;)=1了!也把X赋1了!所以x+=1相当于x=x+1;相当于x=1+1=2了!
注意你算的时候一定不要忘了这一点:x+=4的意思是x=x+4;实际上每算一次都是要给X赋一次值的,你不能把X=6直接给代入全式,X的值随着计算而变化的!
结果的确是2,原因如下:运算顺序是从右往左,等号右边的运算优先级高于左边的,因此先进行
步骤1:x%=4,此时x=2。步骤2:x/=2;所以得出x=1 。步骤3:x+=1,得出x=2 。
注意的是x的值在一直变化,别再把6带入就可以了。
#include
main()
{
int x=6;
printf("x=%d",x+=x/=x%=4);
getchar();
}
x=2
x=x+x x=12
x=x/x x=1
x=x%4 x=2