若有定义"int x=4,y=5;”,则表达式"y>x++? x- - : y++"的值为5,为什么?

 我来答
祤光
2012-07-20 · TA获得超过212个赞
知道小有建树答主
回答量:183
采纳率:0%
帮助的人:192万
展开全部
我运行过这个程序,x=4,y=5是不是你的答案错了,因为运算符的优先级是>比? : 高,所以先执行y>x++,而且x++是后置运算符,先执行运算再+1,所以先比较y=5比x=4大,然后x+1=5,然后执行三目运算符? :当三目运算符是真的时候执行冒号前面的语句,假的时候执行冒号后面的语句,因为之前判断y>x是真所以执行x- -。因为x+ +后等于5,现在执行x- -所以是4
xiziufo
2012-07-20 · TA获得超过132个赞
知道小有建树答主
回答量:103
采纳率:100%
帮助的人:81万
展开全部
(y>x++)这一句的计算顺序是先比较后自增,所以答案是(5>4)值为真,所以整个式子的值等于(x--),现在来看看x的值了。
最先定义时x=4,在(y>x++)中自增一次变成5,然后又自减一次,所以x最后为4,故整个式子的值为4,希望你在检查下,最后在机器上运行下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fatcatlztosh
推荐于2018-04-05
知道答主
回答量:12
采纳率:0%
帮助的人:7.9万
展开全部
y>x++? x- - : y++
如果用printf输出上式的结果printf("result = %d", y>x++? x- - : y++)
相当于
if (y>x)
{
x++;
printf("result = %d", x);
x--;
}
else
{
printf("result = %d", y);
y++;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式