a=(--x==y++)?--x:++y;C语言中这个怎么解释

?:怎么运算的,什么意思,规则是什么... ?:怎么运算的,什么意思,规则是什么 展开
 我来答
匿名用户
2015-11-02
展开全部

"?:"是C语言中的条件表达式,根据表达式返回不同的值;

如:c ? a : b,如果c表达式为真,则返回a,假则返回b;


  1. “( )”运算符优先级最大,先计算--x和y(因为这里是y++,先用了y,y再加1)的值是否相等,然后y再加1;

  2. 如果(--x==y++)的返回值为真,则将--x赋值给a;如果为假,则将++y赋值给a

户哲茂5B
推荐于2017-09-22 · TA获得超过817个赞
知道小有建树答主
回答量:781
采纳率:59%
帮助的人:133万
展开全部

a=(--x==y++)?--x:++y;

问号表达式,(--x==y++)?--x:++y;翻译过来就是

if((--x==y++))
{
--x;
}
else
{
++y;
}

所以就是

if((--x==y++))
{
a=--x;
}
else
{
a=++y;
}

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
multihobe
2015-11-02 · TA获得超过321个赞
知道小有建树答主
回答量:171
采纳率:0%
帮助的人:78.4万
展开全部
--x 恒等于y++吗?如果等于a=--x 否则 a=++y
追问
条件运算的
?:
是怎么运算的
追答
b?x:y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式