一个函数在它的函数体内调用它本身称为递归调用。
在递归调用中,主调函数又是被调函数。
执行递归函数将反复调用其自身,每调用一次就进入新的一层
如:利用递归法计算n!
在本程序中,函数factorial是一个递归函数。主函数调用factorial后进入函数的factorial后即进入函数factorial执行,如果n<0,n==0或n=1是都将结束韩式的执行,否则就递归调用factorial函数本身。
由于每次递归调用的实参位n-1,即将n-1的值赋予形参n,最后当n-1的值为1时再作递归调用,形参n的值也为1,将使递归终止。
当n=5时,则主函数中的调用语句为factorial(5),进入factorial函数后,由于n=5不等于0或1,故执行f=factorial(n-1)*n,即f=factorial(5-1)*5。
在利用递归调用函数的时候,通常会用加条件判断的方式终止递归调用
即在满足条件后不再递归调用,然后逐层返回。