c语言:int x=6,y=5;a=(--x==y++)?x:y+1;a=5的原因

 我来答
Karab
2010-08-27 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:20%
帮助的人:4760万
展开全部
()里--X先X自减1,此时X=6-1=5

然后X先和Y比较是否相等,然后Y才+1;
所以()里的==结果是真;
当?号前面结果为真时,执行:号前面的表达式
所以a=x=5
哎_我可用
2010-08-27
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
a=()?A:B,先判断第一个括号内真假,真的话,a=A,假的话a=B,--X(使用之前减一)为5,y++(使用之后加一)为5,因此括号内为真,a=x,x=5,所以a=5啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
拥云庄主
2010-08-27 · TA获得超过2501个赞
知道小有建树答主
回答量:672
采纳率:100%
帮助的人:410万
展开全部
这个题目其实考的是i++(--)和(--)++i的区别。
i++是先使用i的值,再让i自增1
++i是先自增1后,再使用i的值
--类似。
++,--的运算优先级大于==,
所以,(--x==y++)?x:y+1;等于((--x)==(y++))?x:(y+1)
--x先减1再使用值,x=5,y++,先使用y的值再自增1,5==5为真,所以取x的值,这时候x=5,所以a=5.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式