c语言:int x=6,y=5;a=(--x==y++)?x:y+1;a=5的原因
3个回答
展开全部
a=()?A:B,先判断第一个括号内真假,真的话,a=A,假的话a=B,--X(使用之前减一)为5,y++(使用之后加一)为5,因此括号内为真,a=x,x=5,所以a=5啦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个题目其实考的是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.
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.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询