| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3860 人关注过本帖
标题:?:表达式的执行顺序问题?
取消只看楼主 加入收藏
jansongg
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-7-20
收藏
 问题点数:0 回复次数:8 
?:表达式的执行顺序问题?
程序:
#include "stdio.h"
main()
{
    int x=2,y=3,z;
    z=(++x>=y--)?((--y==1)?x--:--y):y--;
    printf("%d\n",z);
}
运行结果: 3
1.这个程序的执行顺序是怎样的?
2.先执行右边的?:表达式还是左边?
3.如果先执行右边的,那么执行完之后y的值会应用于左边吗?
  如果执行左边先呢,y的值回不会赋给右边?

我是新人,希望大家不吝赐教~~谢谢~~
搜索更多相关主题的帖子: 顺序 表达 int main 
2008-01-22 17:54
jansongg
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-7-20
收藏
得分:0 
但是我不知道怎样计算啊~~计出的答案跟程序输出的不同...
2008-01-22 20:12
jansongg
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-7-20
收藏
得分:0 
是书上的练习题来的....我也知道不好玩....
但是被他困惑很不爽....
2008-01-22 20:30
jansongg
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-7-20
收藏
得分:0 
嗯...有道理.....谢谢....
2008-01-22 20:31
jansongg
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-7-20
收藏
得分:0 
原帖由 [bold][underline]菜鸭[/underline][/bold] 于 2008-1-22 21:17 发表 [url=http://bbs.bccn.net/redirect.php?goto=findpost&pid=1185954&ptid=198334][/url]
爱钻牛角尖
我就喜欢钻牛角尖,对于LZ的这个程序,运行之后也是不解,不过经过我对程序一步一步分解,终于理解了。我想,对于我以后,是应该有些帮助的,尤其是X++与++X的区别。
1,首先,先做(++x>=y--)?,这个式子是成立的,运行之后,X=3,Y=2;
2,其次,再做(--y==1)?,式子成立,运行之后,X=3,Y=1;
3,再次,就成了这个式子:Z=X--。由于是先赋值后自减,所以Z值为3,Y值为2。

所以,这个式子值为3。




    对于资深的高手和天赋极高的“神童”来说,可能不算什么。但是我想,弄懂弄透每个问题,不让自己知其然而不知其所以然,也是应该的。
    把自己的心得写出来,与一些“笨鸟”们共勉,我们早起些,晚休息些,多飞一会儿吧!


知音啊`~~说出了我心中的想法.

特别是
对于资深的高手和天赋极高的“神童”来说,可能不算什么。但是我想,弄懂弄透每个问题,不让自己知其然而不知其所以然,也是应该的。
 把自己的心得写出来,与一些“笨鸟”们共勉,我们早起些,晚休息些,多飞一会儿吧!

这句

 ..就算这个没用..不弄懂始终不舒服..而且问了这么多人,竟然没人正式答复.
总之就是非常感谢菜鸭兄弟了`~` 十万分感谢~~~~
后来我也想到把这个换成for语句解决了`~
2008-01-23 09:09
jansongg
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-7-20
收藏
得分:0 
原帖由 [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.能详细地解决我这个菜鸟的问题.
2008-01-23 21:41
jansongg
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-7-20
收藏
得分:0 
还有,对高手们无意义的问题,对菜鸟可能是一个很大的问题.

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

看来苯鸟很多时候被聪明的鸟孤立!!
2008-01-23 21:47
jansongg
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-7-20
收藏
得分:0 
嗯.谢谢提点.我以后会注意的了.
2008-01-23 23:23
jansongg
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-7-20
收藏
得分:0 
回复 21# 的帖子
谢谢您这么详细和认真地讲解,让我确实认识了很多.我会慢慢去参透的.
看来热心人还是很多啊!!!
真诚地向您说声:谢谢!!
2008-02-01 10:40
快速回复:?:表达式的执行顺序问题?
数据加载中...
 
   



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

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