| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 873 人关注过本帖
标题:别忘了逗号表达式...(另类的表达式!)
只看楼主 加入收藏
grub2linux
Rank: 1
等 级:新手上路
帖 子:335
专家分:0
注 册:2004-12-25
收藏
 问题点数:0 回复次数:7 
别忘了逗号表达式...(另类的表达式!)

刚刚遇到一道题,想起了逗号表达式! 从而改变了我"分号一统天下"的垄断!! 于是乘兴随手用逗号表达式的功能,写了下面语句. 嘿嘿!..C还可写成这样! #include <stdio.h> main() { int k=9,i=8,o=3;

while(printf("%d %d %d\n",k,i,o),scanf("%d",&i),o=k+i,k--,i--,o--) printf("%d\n",k), printf("%d\n",i), printf("%d\n",o),

getch(); }

整个while后的表达式的值就是o的值,而o的值取决于k和i,就是说,后面依赖前面,while是否循环要看前面.这样的语句非常精练.如果此处不用逗号表达式的话,可能就要用一些IF,DO 等等附加的条件语句了,就不精练了... 大家可体会一下..

[此贴子已经被作者于2005-1-23 2:10:09编辑过]

搜索更多相关主题的帖子: 逗号 另类 表达 
2005-01-23 01:44
myy_yoyo
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2005-2-24
收藏
得分:0 
原理是什么呢?这样写有什么区别啊??

2005-02-24 16:58
lmr
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2004-12-9
收藏
得分:0 

总之一句话,逗号表示式就是用最后一项来代表此逗号表示式的值。  

  通俗点就是当i输入值为-9,那o=k+i就等于0,故while(表达式)相当于while(0),也就直接退出去了。

 

2005-02-24 17:44
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
其实你这个‘一句话’还并不完全体现了“,”表达式的价值。

他最大的价值在于:虽然逗号表达式是用‘最后一项来代表此逗号表达式的值’,但是他前面的语句会原样不动的执行。

淘宝杜琨
2005-02-24 17:58
tempnetbar
Rank: 2
等 级:新手上路
威 望:4
帖 子:582
专家分:4
注 册:2004-5-5
收藏
得分:0 
嗯不错,其实要学好C语言细节问题一定要注意好

相信勤能补拙! 喜欢用好用的就永远学不到有用的。
2005-02-24 18:45
kaikai
Rank: 1
等 级:新手上路
帖 子:236
专家分:0
注 册:2005-1-7
收藏
得分:0 
欢迎加入组织:)

Have you visit acm.tongji. lately?
2005-02-24 18:54
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
是拜月教吗?

淘宝杜琨
2005-02-24 19:09
kaikai
Rank: 1
等 级:新手上路
帖 子:236
专家分:0
注 册:2005-1-7
收藏
得分:0 
已经从郁闷中解脱出来了...

Have you visit acm.tongji. lately?
2005-02-24 19:18
快速回复:别忘了逗号表达式...(另类的表达式!)
数据加载中...
 
   



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

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