C语言的递归

目录

什么是递归

递归的好处与坏处

递归的难点

使用递归的硬性条件

递归容易出现的异常


什么是递归

自己调用自己就叫做递归,比如有一个 method 函数,这个函数在内部不断的自己调用自己,这就叫递归

递归的好处与坏处

递归的好处就是说,我们可以把大量的重复的代码,使用递归的方式来进行,比如求阶乘,如果是以往,我们需要调一下函数,求这个数与下一个数的的乘积,然后再继续掉,但是用递归,我们只用一遍就行;

当然,递归也有坏处,递归如果结束条件不合理,或没有结束条件,就会造成无限自身调用,会频繁创建实例,非常非常耗费资源,很容易造成溢出

递归的难点

1、思想化,该如何递归?怎么实现?

2、结束条件,我该在什么时候结束?

使用递归的硬性条件

1、存在限定条件,即什么时候,递归结束,不再自己调用自己

2、每次递归,都会距离设置的递归结束条件更进一步

递归容易出现的异常

递归上面也说了坏处,递归最容易出现的,就是栈溢出,为什么会栈溢出呢?

内存分为堆内存、占内存、静态存储区

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

栈内存存放:函数的形参,局部变量

静态区存放:全局变量,静态参数

当你执行一次函数,程序就向内存申请一次空间,你无限调用,就在栈内存无限创建,直到溢出

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值