| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 584 人关注过本帖
标题:求助!关于课本上的函数递归调用的问题
只看楼主 加入收藏
wekon
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-11-22
收藏
 问题点数:0 回复次数:2 
求助!关于课本上的函数递归调用的问题
课本中关于函数的递归调用有一个例题,
age(n)
int n;
{
int c;
if(n==1)c=10;
else c=age(n-1)+2;
return(c);
}

main()
{
printf("%d",age(5));
}

运行结果为 18

我没有看懂,首先main主函数调用age(5)函数,age函数中的n为5,执行c=age(4)+2,调用age函数,n等于4,直到n等于1时,执行
c=10,然后执行return语句将c返回,可是返回到哪里呢?递归调用应该再递退回去阿,执行age(1)=10阿。
不明白,

大家帮帮忙!谢谢!
搜索更多相关主题的帖子: 递归 函数 课本 
2006-11-22 11:04
smartwind
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2006-11-13
收藏
得分:0 
你用逐步调试仔细看看就明白了

2006-11-22 11:23
zhanghuan_10
Rank: 1
等 级:新手上路
威 望:2
帖 子:751
专家分:0
注 册:2006-10-25
收藏
得分:0 
退回到调用它的函数!执行age(1)=10之后,将值返回到age(2)中,接着执行在age(2)未执行的语句return(c),依次类推,直到将值返回到main函数中!将结果打印出!

该学习了。。。
2006-11-22 12:58
快速回复:求助!关于课本上的函数递归调用的问题
数据加载中...
 
   



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

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