基本介绍
一个函数在函数体内又调用了本身,称为递归调用
快速入门
当test(4)时,下面代码输出什么,分析原因
int test( int n) { if(n>2) { test(n-1); } printf("n=%d\n",n); }
思路分析
当test=4时,test 4 >2 然后接着执行 test (4-1) 注意,此时的test(4)还未结束,printf还为打印
当test(4-1)==>test(3)时,依旧>2 ,接着执行 test (3-1),此时test(3)还未结束,printf还为打印
当test(3-1)此时==>test(2)不满足条件>2, 即在test(2)中的返回值是 n=2,结束(test2);
然后到test(3)时,输出打印结果 n=3,结束test(3);
然后到test(4),输出打印结果 n=4,结束test(4);
完整代码
#include<stdio.h>
int test( int n)
{
if(n>2)
{
test(n-1);
}
printf("n=%d\n",n);
}
int main()
{
test (4);
return 0;
}