int a, b; a=15; b=12; a=(a-- ==b++)? a%5 : a/5

a=(a--==b++)运算顺序是怎样的,求高手讲解一下... a=(a-- ==b++)运算顺序是怎样的,求高手讲解一下 展开
 我来答
nehcam
推荐于2018-04-05 · TA获得超过221个赞
知道答主
回答量:139
采纳率:0%
帮助的人:131万
展开全部
首先a = (a-- == b++)? a%5 : a/5 这个是一个条件表达式,可以看作:

if((a--) == (b++)){
a = a%5;
}else{
a = a/5;
}

然后再来看 a = (a-- == b++)? a%5 : a/5 的运算符优先级。

条件表达式先运行 ? 前面的部分 : a-- == b++
-- , ++ 优先级高于 ==,
运算后 a-- = 14, b++ = 13, 14 == 13 是false。

根据条件表达式的运行, 这时会运行到
else{
a = a/5;
}
即 a = 14 / 5;
a为整型, 那么最后结果为 a = 2;

这个应该是考对运算符优先级的把握吧,熟悉了之后就OK了。
sz51625
2012-10-10 · TA获得超过127个赞
知道小有建树答主
回答量:307
采纳率:100%
帮助的人:128万
展开全部
a=(a-- ==b++)? a%5 : a/5
这是一条语句
先说(a-- ==b++),判定a--和b++是否相等
若是相等,a就等于a%5,也就是 :前面的,
若是不等,a就等于a/5,这是 : 后面的。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
函晴桖88
2012-10-10
知道答主
回答量:26
采纳率:0%
帮助的人:11.7万
展开全部
双等号应该是比较,单等号是赋值,a--,先用a,后减1,b++,先用b,后加1,所以,a=(15==12)=0,最后,a=14,b=13
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aduo17
2012-10-10
知道答主
回答量:38
采纳率:0%
帮助的人:10.1万
展开全部
a=(a-- ==b++)? a%5 : a/5属于条件运算的算式,(a-- ==b++)是条件,如果a-- 和b++的值相等<即条件(a-- ==b++)成立>即为真,则把a%5的值赋给a;否则为假,把a/5的值赋给a.
针对本题,(a-- ==b++)不成立,为假,则把a/5的值赋给a,即:a=2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ge2008ge12
2012-10-10 · TA获得超过1110个赞
知道小有建树答主
回答量:683
采纳率:100%
帮助的人:338万
展开全部
a=(a-- ==b++)? a%5 : a/5;
是先a-- 和b++ a = 14 ,b = 13,14 和13不等,返回 a/5,此时的a = 14,顾取整之后的值为2,最后a等于2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式