| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 481 人关注过本帖
标题:程序解释:执行过程说明?
只看楼主 加入收藏
yqiong
Rank: 1
等 级:新手上路
帖 子:315
专家分:0
注 册:2007-7-4
结帖率:83.33%
收藏
 问题点数:0 回复次数:1 
程序解释:执行过程说明?

这个递归调用是怎么实现的,具体步骤是怎样的?能帮忙说明下吗?越详细越好,谢谢了!
#include<stdio.h>
out(char s[])
{ if(*s) out(s+1);
else return;
putchar(*s);
}

main()
{char a[]="12345";
out(a);
putchar('\n');
}

搜索更多相关主题的帖子: 解释 
2007-07-31 19:00
忘却拥有
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-7-31
收藏
得分:0 

字符数组a的头指针刚开始指向1,那在out函数中if(*s)就为1,则调用out函数,参数为s+1,即为2……以此类推,最后当a指向5时,下一个是字符数组的结束符‘\0’,此时在调用out函数时就执行else return语句了。返回后就执行当a指向5的那个putchar(*s),那么第一个输出的就是5了,因此整个代码的输出应该是54321吧。


我大概知道怎么看,但不知道怎么说,说得不清楚请原谅了。如果有什么错误请哪位大虾指出吧~

2007-07-31 21:28
快速回复:程序解释:执行过程说明?
数据加载中...
 
   



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

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