前言:本人为C语言初学者,学识尚浅,研究程度存在很大的局限性,眼界很窄。以下所有观点仅代表个人见解和思路,各位游刃有余的前辈可以给予批评和指正!各位与鄙人同路的学子可相互探讨、发表看法,交换观点!
递归释义(个人理解):在函数中调用函数自身
递归的必要条件:1.递归必须存在限制条件,杜绝死递归
2.每次递归后要保证逼近限制条件,递归存在结束点
递归的特点:用少量代码完成多次类似的复杂运算
貌似递归听起来是很高大上的东西,给人一种很厉害的感觉。但众所周知,每次函数的调用就会占用栈区空间,当递归到很深的程度时,迎来了递归的致命伤:栈溢出。
#include <stdio.h>
void fun(int i)
{
if(i > 0)
fun(i - 1);
}
int main()
{
fun(10000);
return 0;
}
首先,这串代码已经具备了两个必要的递归条件:
1.if(i > 0) 存在限制条件
2.fun(i - 1); 每次递归都在像限制条件靠近
但如果让代码跑起来&#x