当在一个函数中调用同一个函数(自身)时,它在C语言中被称为递归。调用相同函数的函数称为递归函数。
一个调用自身,并且在函数调用后不执行任务的函数被称为尾递归。 在尾递归中,我们通常使用return
语句调用相同的函数。下面给出了一个尾递归递归的例子。
recursionfunction(){
recursionfunction();// 函数名称一样,自身调用自身函数
}
C语言中尾递归的例子
我们来看一个使用C语言中的尾递归打印因子数的例子。首先创建一个名称为:recursion的工程,在这个工程下创建一个源文件:recursion-example.c,其代码如下 -
#include<stdio.h>
int factorial(int n)
{
if (n < 0)
return -1; /*Wrong value*/
if (n == 0)
return 1; /*Terminating condition*/
return (n * factorial(n - 1));
}
void main() {
int fact = 0;
fact = factorial(5);
printf("\n factorial of 5 is %d \n", fact);
}
执行上面代码,得到以下结果 -
factorial of 5 is 120
我们可以通过下面的图形来理解上述递归方法调用的程序: