发布网友 发布时间:2022-04-23 10:01
共1个回答
热心网友 时间:2023-10-10 15:16
/*递归例子*/
1 #include<stdio.h>
2 void up_and_down(int);
3 int main(void)
4 {
5 up_and_down(1);
6 return 0;
7 }
8 void up_and_down(int n)
9 {
10 printf("Level %d:n location %p\n",n,&n); /* 1 */
11 if(n<4)
12 up_and_down(n+1);
13 printf("Level %d:n location %p\n",n,&n); /* 2 */
14 }
递归的基本原理:
1 每一次函数调用都会有一次返回.当程序流执行到某一级递归的结尾处时,它会转移到前一级递归继续执行.
2 递归函数中,位于递归调用前的语句和各级被调函数具有相同的顺序.如打印语句 #1 位于递归调用语句前,它按照递
归调用的顺序被执行了 4 次.
3 每一级的函数调用都有自己的私有变量.
4 递归函数中,位于递归调用语句后的语句的执行顺序和各个被调用函数的顺序相反.
5 虽然每一级递归有自己的变量,但是函数代码并不会得到复制.
6 递归函数中必须包含可以终止递归调用的语句.
再看一个具体的递归函数调用的例子:以二进制形式输出整数