递归函数

递归就是一个函数在它的函数体内调用它自己。

例:计算n的阶乘

  1. int factorial(int n){
  2. int result;
  3. if(n==0||n==1){
  4. result=1;
  5. }else{
  6. result=factorial(n-1)*n;
  7. }
  8. return result;
  9. }
  10. int main(){
  11. int n=5;
  12. printf("%d的阶乘=%d",n,factorial(n));
  13. return 0;
  14. }

特点:

1、每一级函数调用时都有自己的变量,但函数代码并不会得到复制

2、每一次调用都会有一次返回

3、递归函数中,位于递归调用前的语句和各级被调用函数具有相同的顺序

4、递归函数中,位于递归调用后的语句的执行顺序和各个被调函数的顺序相反

5、递归函数必须有终止语句