13.1 递归函数基本概念
C通过运行时堆栈来支持递归函数的实现。递归函数就是直接或间接调用自身的函数。
13.2 普通函数调用
void funB(int b)
{
printf("b = %dn", b);
}
void funA(int a)
{
funB(a - 1);
printf("a = %dn", a);
}
int main(void)
{
funA(2);
printf("mainn");
return 0;
}
13.2 普通函数调用
void funB(int b)
{
printf("b = %dn", b);
}
void funA(int a)
{
funB(a - 1);
printf("a = %dn", a);
}
int main(void)
{
funA(2);
printf("mainn");
return 0;
}
输出结果
b = 1 a = 2 main
函数的调用流程如下:
13.3 递归函数调用
void fun(int a)
{
if (a == 1)
{
printf("a = %dn", a);
return; //中断函数很重要
}
fun(a - 1);
printf("a = %dn", a);
}
int main()
{
fun(2);
printf("mainn");
return 0;
}
输出结果
a = 1 a = 2 main
函数的调用流程如下:



