| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 850 人关注过本帖
标题:大家来看看 这该怎么解释
只看楼主 加入收藏
Y08M09D26
Rank: 2
等 级:论坛游民
帖 子:118
专家分:13
注 册:2008-9-26
结帖率:100%
收藏
 问题点数:0 回复次数:6 
大家来看看 这该怎么解释
int  func(int i,int n)
{
    return (i<n && printf("%d\n",i)) && !func(i+1,n)
            || printf("%d\n",i);
}
这函数怎么来解释?
搜索更多相关主题的帖子: 解释 
2008-10-31 14:36
lockhawk
Rank: 1
等 级:新手上路
帖 子:94
专家分:0
注 册:2008-9-17
收藏
得分:0 
返回的是一个关系表达式,结果是1或0。应该用bool型才对?

人生最大痛苦:虽然不明白你们说什么,但还是要听!
2008-10-31 18:46
youhm
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2006-5-25
收藏
得分:0 
呵呵,楼主从哪儿搞来的,是不是VBGOOD,这个是递归输出数字从i到n再到i
2008-10-31 19:14
ling121211
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-10-23
收藏
得分:0 
你这里的func()函数的返回值用int没问题。
函数的工作如下:
当i= 1时,先执行i<n;成立则输出i;然后去调用!func(i+1,n),同样先判断i<n是否成立,成立则输出i+1;
然后去调用!func(i+1,n),不停的递归调用。
当i=8时,先执行i<n;成立则输出i;然后去调用!func(i+1,n);此事!func(9,9),i<n不成立,故执行||后面的printf语句。然后返回到当i=8时栈空间,去执行||后面的printf()语句。
2008-10-31 23:45
Y08M09D26
Rank: 2
等 级:论坛游民
帖 子:118
专家分:13
注 册:2008-9-26
收藏
得分:0 
原来是这回事 啊
谢谢各位啦
2008-11-03 17:12
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
这是个递归程序..前半句是递推后半句是回归..应该注意到这个表达式在什么时候返回的都是1
(i<n && printf("%d\n",i)) && !func(i+1,n)
            || printf("%d\n",i);
只有都是1的时候才会执行||后面这个打印..

学习需要安静。。海盗要重新来过。。
2008-11-03 20:20
SuperPanda
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2008-10-8
收藏
得分:0 
你先搞清楚&/ !的优先级应该就可以了吧
2008-11-03 22:24
快速回复:大家来看看 这该怎么解释
数据加载中...
 
   



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

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