c语言表达式问题···

[复制链接]
查看11 | 回复5 | 2009-2-13 16:06:15 | 显示全部楼层 |阅读模式
5. 若有说明语句:“int x=1, y=0;”,则表达式x――>(y+x)?5:25>y++?‘1’:‘2’的值是 ()。
答案是5,为什么?
伊·梵 - 大魔法师 你可以详细点吗,我笨我看不大明白哦

回复

使用道具 举报

千问 | 2009-2-13 16:06:15 | 显示全部楼层
答案不对吧 我认为答案是1我来说明我的理由吧这表达式是自右向左结合,这我当然知道x――>(y+x)?5:25>y++?‘1’:‘2’等价与x――>(y+x)?5:(25>y++?‘1’:‘2’)接下来x――>(y+x)?5:1y++运算过后,y的值就变成1了x――>(y+x)?5:1先执行x--执行完后,x就变成0了,所以y+x=1则1>1?5:1所以答案是1啊~~!我说的不对可以在线交流啊~~!共同提高啊~~!...
回复

使用道具 举报

千问 | 2009-2-13 16:06:15 | 显示全部楼层
?:是右结合的 x-->(y+x)?5:25>y++?'1':'2' --> ((x--)>(y+x))?5:(25>y++?'1':'2') 问题集中到(x--)>(y+x) TC测试结果(x--)>(y+x)结果为true 这题与 x++*x++ 问题属于同性质的问题...
回复

使用道具 举报

千问 | 2009-2-13 16:06:15 | 显示全部楼层
x――>(y+x)这个是什么意思?是x-- > (y+x)吗?...
回复

使用道具 举报

千问 | 2009-2-13 16:06:15 | 显示全部楼层
这个,是不是谭浩强书里的...?...
回复

使用道具 举报

千问 | 2009-2-13 16:06:15 | 显示全部楼层
应该是x--执行完了之后才跟y+x比较 1>0 所以答案为5...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行