main() { int x=4,y=3; int a,b,c; a=(--x==y++)?--x:++y; b=x++; c=y;} } 为什么输出答案是2 2 4

真诚向你们求助,请快点回答... 真诚向你们求助,请快点回答 展开
 我来答
也许的猫
推荐于2018-04-24 · TA获得超过264个赞
知道答主
回答量:54
采纳率:0%
帮助的人:67.4万
展开全部
根据运算符优先级,a=(--x==y++)?--x:++y等价于a=(((--x)==(y++)))?(--x):++y,首先判断x=x-1与y值的是否相等,y+1,若相等,则a=--x(--x先x=x-1,然后用于计算)。此时,x=2,y=4。a=2
b=x++,将x的值赋给b,然后x=x+1,所以b=2,x=3.
c=y,所以c=4。
在写代码的时候,最好将表达式中的不同优先级的计算用括号括起来,这样就不用为优先级问题而烦恼了。
手机用户97396
2013-01-14
知道答主
回答量:48
采纳率:0%
帮助的人:10.6万
展开全部
是求abc吧?电脑上也说不清楚,自己多看书吧,很基础的,应该是符号的优先级问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式