c语言中,x=6,表达式(x+=x/=x%=4)的值是多少?为什么?
main(){intx=6;printf("x=%d",x+=x/=x%=4);getch();}为什么在我的Windows7环境下的WinTC2.0下编译链接运行的结果...
main()
{
int x=6;
printf("x=%d",x+=x/=x%=4);
getch();
}
为什么在我的Windows 7环境下的Win TC 2.0下编译链接运行的结果为6?这是什么意思?帮我看看错在哪里? 展开
{
int x=6;
printf("x=%d",x+=x/=x%=4);
getch();
}
为什么在我的Windows 7环境下的Win TC 2.0下编译链接运行的结果为6?这是什么意思?帮我看看错在哪里? 展开
4个回答
展开全部
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的值随着计算而变化的!
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带入就可以了。
步骤1:x%=4,此时x=2。步骤2:x/=2;所以得出x=1 。步骤3:x+=1,得出x=2 。
注意的是x的值在一直变化,别再把6带入就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
x=2
x=x+x x=12
x=x/x x=1
x=x%4 x=2
x=x+x x=12
x=x/x x=1
x=x%4 x=2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询