黑马程序员技术交流社区
标题:
函数递归调用
[打印本页]
作者:
军团指挥官
时间:
2015-3-24 10:37
标题:
函数递归调用
#include "stdio.h"
void up_and_down(int);
int main(void)
{
up_and_down(1);
return 0;
}
void up_and_down(int n)
{
printf("Level %d:n location %p\n",n,&n);
if(n<4)
up_and_down(n+1);
printf("Level %d:n location %p \n",n,&n);
}
复制代码
这是在《C primer plus》中看的一个例子,输出结果为:
Level 1:n location 0xbfcac790
Level 2:n location 0xbfcac770
Level 3:n location 0xbfcac750
Level 4:n location 0xbfcac730
Level 4:n location 0xbfcac730
Level 3:n location 0xbfcac750
Level 2:n location 0xbfcac770
Level 1:n location 0xbfcac790
前面的level1—level4都可以明白,后面的就看不明白怎么回事了,想请看明白的朋友解答一下。感激不尽!
作者:
谢囧
时间:
2015-3-24 10:47
本帖最后由 谢囧 于 2015-3-24 10:52 编辑
up_and_down(n+1);
等于
printf("Level %d:n location %p\n",n+1,&n);
if(n+1<4)
{
up_and_down(n+1+1);
}
printf("Level %d:n location %p \n",n+1,&n);
以此类推
作者:
佩玉鸣
时间:
2015-3-24 10:47
递归调用,逐次退出子程序
作者:
军团指挥官
时间:
2015-3-27 10:04
看明白了。
作者:
奋斗中啊
时间:
2015-3-31 00:35
不难理解啊
作者:
军团指挥官
时间:
2015-4-3 09:15
奋斗中啊 发表于 2015-3-31 00:35
不难理解啊
当时没看明白。你是准备第几期?
作者:
奋斗中啊
时间:
2015-4-3 12:49
军团指挥官 发表于 2015-4-3 09:15
当时没看明白。你是准备第几期?
8期吧 你呢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2