| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6503 人关注过本帖
标题:三元运算符嵌套问题
只看楼主 加入收藏
q3077965
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-9-20
收藏
得分:0 
我是一个C语言的初学者,但我想我可以说一下我的理解.
我只用过TC2.0,所以不说编译器的问题,我只是根据老谭的思路.
首先我要说的是"右结合性"
看题目:x-->(y+x)?5:25>y++?'1':'2'
右结合后:x-->(y+x)?5:(25>y+=?'1':'2')
那么接下来先执行什么呢?应该是:x-->(y+x)
题目中x=1,y=0,那么这里就是1>(0+0)注意:这里的Y还没有自加
等式成立,答案就是5.
如果有人要问,为什么不执行第2个括号里面的?
那就像是IF语句如果等式成立还会去执行ELSE后面的语句吗,
所以这里Y没有自加
编译器是左结合的话,我想大家应该可以理解了.

佛,你万世孤独,请容我一生寂寞.
2006-10-01 12:58
hejing1109
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2006-9-27
收藏
得分:0 

用TC结果是5 用VC6.0结果是49


2006-11-21 22:25
smartwind
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2006-11-13
收藏
得分:0 
正确答案应该是49,不过楼上的解释没说清楚
x++,x--是本行结束后才增一或减一,也就是说上面的2个判断相当于:
1>(1+0) 25>0

2006-11-22 13:10
perfect
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:81
专家分:0
注 册:2006-11-19
收藏
得分:0 
还是避免出现这种情况的好

片言可以明百意 坐驰可以役万里
2006-11-22 14:02
财鸟
Rank: 1
等 级:新手上路
帖 子:132
专家分:0
注 册:2006-11-2
收藏
得分:0 

应该是49!!!!!!!!!!
x-->(y+x)?5:25>y++?'1':'2'

步凑是!!!!!!!!!
0>1?5:25>1?‘1’:‘2’
0>1?5:‘1’
最后就是‘1’
也就是49。

2006-11-22 15:57
快速回复:三元运算符嵌套问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016833 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved