当前位置: 代码迷 >> C语言 >> ?:表达式的执行顺序问题?
  详细解决方案

?:表达式的执行顺序问题?

热度:381   发布时间:2008-01-23 13:55:07.0
不是不回答````知道不知道```程序的一个特征??

那就是准确性!!意思就是每一条语句````只能表示一个意思``
不能产生2意性```如果写了这样的代码``都是不好的代码``

++和--用的多的式子里``应该注意这个问题``
当你搞不清出代码回怎么办事的时候``就别写这样的代码``

他们只是说明LZ问的这段代码`风格不好```不应该这样写```因为几乎不回有什么人写``
至少``稍微懂点的人都不回这样写```只有刚入门的菜鸟才回问这样的问题````
----------------解决方案--------------------------------------------------------
这个老谭的书上都有写的嘛
----------------解决方案--------------------------------------------------------
不是菜鸟,是菜鸭!
偶是初学啦,就是你们所说的菜鸟啦。


问:我靠什么学C语言呢?         

答:教材!!

问:教材是谁写的呢?         

答:对C语言有研究的人!!

问:那写教材的人是不是菜鸟呢?         

答:不应该吧,迷惑中!

问:那这道题是教材上的吧?               

答:是!

问:那既然照着教材系统地学的没用,向谁学呢?         

答:不知道,谁是高手找谁!!

问:那高手在哪呢?                        

答:不知道,我只知道自称为高手不应该是高手吧??

问:那高手不是高手,那菜鸟呢?              

答:不应该吧,菜鸟总有一天也会成为高手啊,所以,高手与菜鸟,只是时间的问题。

问:那菜鸟不是菜鸟,是什么?                    


答:菜鸭!!



结论:               问的是菜鸟,答的当然是菜鸭!!!!!!!!!!


引申:当初雷锋同志说过:我愿意当革命的“傻子”!  我也要说,如果是为了学习,我愿意当C语言的“菜鸭”!!!!!!!

[[italic] 本帖最后由 菜鸭 于 2008-1-23 15:29 编辑 [/italic]]
----------------解决方案--------------------------------------------------------
int x=2,y=3,z;
    z=(++x>=y--)?((--y==1)?x--:--y):y--;
好像是这样的
(++x>=y--)?((--y==1)
一开始++x为3和y--为3比较结果成立,因为自增在前面是先用后加,在后面是先加后用!
然后x和y的值分别是x=3,y=2
成立然后在计算表达式--y==1    先用后加引是y=1对吧,然后这个也立x--
因为自减在后面,先用,后减,最后结果是z=2,x=2,y=2
好像是,我也是刚学
----------------解决方案--------------------------------------------------------
Z=3打错了!
----------------解决方案--------------------------------------------------------
原帖由 [bold][underline]死了都要C[/underline][/bold] 于 2008-1-23 13:55 发表 [url=http://bbs.bccn.net/redirect.php?goto=findpost&pid=1186316&ptid=198334][/url]
不是不回答````知道不知道```程序的一个特征??

那就是准确性!!意思就是每一条语句````只能表示一个意思``
不能产生2意性```如果写了这样的代码``都是不好的代码``

++和--用的多的式子里``应该注意这个问题``
当你搞不清出代码回怎么办事的时候``就别写这样的代码``

他们只是说明LZ问的这段代码`风格不好```不应该这样写```因为几乎不回有什么人写``
至少``稍微懂点的人都不回这样写```只有刚入门的菜鸟才回问这样的问题````


首先..如果这程序是我写的话我就不会提出这样的问题了.这就是你们的思维方式么?自己写的会拿出来问执行顺序么?

其次..我对编程风格上的东西还是知道一点的..所以我也不会写这样的语句.当然以简洁明了为主.一条语句一个意思.这语句我是在书上看到的...所以才提出这问题...++,--也是全照书打下来的...

再次,我也知道这风格不好,谢谢你们的提醒.我知道这样写别人看得辛苦,我也写得痛苦啊.

我承认我是菜鸟,但是这里的"高手们"都是看不起菜鸟的吧?回答的人只是说这风格不好.都却没有一个人能打多几个字来解释一下给我这个菜鸟看.真令人心寒.

最后,我要特别感谢菜鸭和ggggiaqgyd.能详细地解决我这个菜鸟的问题.
----------------解决方案--------------------------------------------------------
还有,对高手们无意义的问题,对菜鸟可能是一个很大的问题.

当一个菜鸟遇到问题时,高手们只说无意义,却毫无说明.那么,这句无意义就很有意义么?

看来苯鸟很多时候被聪明的鸟孤立!!
----------------解决方案--------------------------------------------------------
看来楼主您还是没有理解所谓“无意义”的意义

并不是“高手”不屑于思考或者不屑于回答或者说问题太简单
事实上某些问题使用不同的开发环境会产生不同的结果,这也就说明了在C语言的原始文本中有特殊的问题并没有明确定义,故而造成某些精心构造的语句具有多义性,这是不符合程序设计原则的,因此也是实践中应该避免的。

具体到您这个问题,“高手”们普遍认为应该在实践中避免使用这种形式,并不是在敷衍您,反而恰恰是对您负责的表现。如果这个问题是某本书上的练习题,那么我认为编者有问题,您应该听说过一句话,尽信书不如无书。
----------------解决方案--------------------------------------------------------
嗯.谢谢提点.我以后会注意的了.
----------------解决方案--------------------------------------------------------
去搞清楚这种无聊的语法不如多学一个算法
----------------解决方案--------------------------------------------------------
  相关解决方案