搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ ?:表达式的执行顺序问题?
标题:
?:表达式的执行顺序问题?
只看楼主
jansongg
等 级:
新手上路
帖 子:30
专家分:0
注 册:2007-7-20
楼主
问题点数:0 回复次数:23
?:表达式的执行顺序问题?
程序:
#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
雨中飞燕
等 级:
禁止访问
威 望:
8
帖 子:2200
专家分:0
注 册:2007-8-9
第
2
楼
得分:0
无意义的问题。。。。。。。。。。
2008-01-22 18:06
forever74
来 自:CC
等 级:
贵宾
威 望:
49
帖 子:1636
专家分:3940
注 册:2007-12-27
第
3
楼
得分:0
深入思考是好事,但是须知真理前进一小步就变成谬误了,所以并不是越深入越好的。
否则就像楼上说的,沦为无意义行为了。
2008-01-22 18:30
jansongg
等 级:
新手上路
帖 子:30
专家分:0
注 册:2007-7-20
第
4
楼
得分:0
但是我不知道怎样计算啊~~计出的答案跟程序输出的不同...
2008-01-22 20:12
死了都要C
来 自:四川成都
等 级:
贵宾
威 望:
13
帖 子:1582
专家分:116
注 册:2006-12-7
第
5
楼
得分:0
别这样写程序啊````一点都不好玩```
女施主``我给你``送茶来了```师太``你就从了老衲吧``
代码本天成~~~妙头偶得之```
2008-01-22 20:29
jansongg
等 级:
新手上路
帖 子:30
专家分:0
注 册:2007-7-20
第
6
楼
得分:0
是书上的练习题来的....我也知道不好玩....
但是被他困惑很不爽....
2008-01-22 20:30
永夜的极光
等 级:
贵宾
威 望:
27
帖 子:2721
专家分:1
注 册:2007-10-9
第
7
楼
得分:0
即使你计算出来正确的结果又怎样?写程序的时候谁会这么写?
不要浪费时间在这种无聊的题目上,一点作用都没有
从BFS(Breadth First Study)到DFS(Depth First Study)
2008-01-22 20:30
jansongg
等 级:
新手上路
帖 子:30
专家分:0
注 册:2007-7-20
第
8
楼
得分:0
嗯...有道理.....谢谢....
2008-01-22 20:31
菜鸭
等 级:
新手上路
帖 子:262
专家分:0
注 册:2007-12-9
第
9
楼
得分:0
爱钻牛角尖
我就喜欢钻牛角尖,对于LZ的这个程序,运行之后也是不解,不过经过我对程序一步一步分解,终于理解了。我想,对于我以后,是应该有些帮助的,尤其是X++与++X的区别。
1,首先,先做(++x>=y--)?,这个式子是成立的,运行之后,X=3,Y=2;
2,其次,再做(--y==1)?,式子成立,运行之后,X=3,Y=1;
3,再次,就成了这个式子:Z=X--。由于是先赋值后自减,所以Z值为3,x值为2。
所以,这个式子值为3。
对于资深的高手和天赋极高的“神童”来说,可能不算什么。但是我想,弄懂弄透每个问题,不让自己知其然而不知其所以然,也是应该的。
把自己的心得写出来,与一些“笨鸟”们共勉,我们早起些,晚休息些,多飞一会儿吧!
[[italic] 本帖最后由 菜鸭 于 2008-1-23 09:42 编辑 [/italic]]
2008-01-22 21:17
jansongg
等 级:
新手上路
帖 子:30
专家分:0
注 册:2007-7-20
第
10
楼
得分: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
24
1/3页
1
2
3
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-198334-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.015114 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved