int a, b; a=15; b=12; a=(a-- ==b++)? a%5 : a/5
展开全部
首先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了。
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了。
展开全部
a=(a-- ==b++)? a%5 : a/5
这是一条语句
先说(a-- ==b++),判定a--和b++是否相等
若是相等,a就等于a%5,也就是 :前面的,
若是不等,a就等于a/5,这是 : 后面的。
这是一条语句
先说(a-- ==b++),判定a--和b++是否相等
若是相等,a就等于a%5,也就是 :前面的,
若是不等,a就等于a/5,这是 : 后面的。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
双等号应该是比较,单等号是赋值,a--,先用a,后减1,b++,先用b,后加1,所以,a=(15==12)=0,最后,a=14,b=13
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
针对本题,(a-- ==b++)不成立,为假,则把a/5的值赋给a,即:a=2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a=(a-- ==b++)? a%5 : a/5;
是先a-- 和b++ a = 14 ,b = 13,14 和13不等,返回 a/5,此时的a = 14,顾取整之后的值为2,最后a等于2
是先a-- 和b++ a = 14 ,b = 13,14 和13不等,返回 a/5,此时的a = 14,顾取整之后的值为2,最后a等于2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |