当前位置:   article > 正文

C语言学习——函数递归_递归函数里临时变量

递归函数里临时变量

目录

一、什么是递归?

二、何为栈溢出?

三、递归的两个必要条件


什么是递归?

  • 程序调用自身的编程技巧称为递归
  • 运用少量的代码就可以完成多次重复的计算
  • 思考方式:把大事化小
    1. #include<stdio.h>
    2. int main()
    3. {
    4. printf("毛毛\n");
    5. main();
    6. return 0;
    7. }
    8. //main函数调用main函数

    Stack overflow  ——  递归常见错误:栈溢出

何为栈溢出?

内存划分为几个区域:

栈区:存放局部变量  函数形参

堆区:存放动态开辟的内存

静态区:全局变量  static修饰的变量

函数无休止递归   栈空间被填满称为栈溢出

递归的两个必要条件

  • 存在限制条件,当满足两个限制条件时,递归不再继续
  • 每次递归调用之后越来越接近这个限制条件
    1. #include<stdio.h>
    2. void print(int n)
    3. {
    4. if (n > 9)//条件1:存在限制条件
    5. {
    6. print(n / 10);//条件2:每次执行越来越接近限制条件
    7. }
    8. printf("%d ", n % 10);
    9. }
    10. int main()
    11. {
    12. unsigned int num = 0;
    13. scanf("%d", &num);
    14. print(num);
    15. }
    '
    运行

    // 每次都需要调用函数从后往前输出

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号