4.3 递归

4.3 递归

由于这一章节有大量关于gdb的操作(上一章的坑),所以这里仅介绍一下递归的定义和我自己的一些理解

事实上,这章节递归函数里出现的很多错误都是可以通过静查去规避的,gdb只是一个帮助查错的方法,静查有助于提高你分析代码运行过程的能力(别问,问就是操作系统没学好,而且默认的path不是我平时放c++文件的目录,而且我一般写博客测试的文件是桌面上随便建立了一个文件,所以一般是不会做操作系统相关的操作)

关于递归

关于递归,书本上举了一个非常有意思的例子(当然这个例子是死循环啊):
递归的定义如下:(可以理解为主函数)
递归:如果还是没明白参见“递归”。

你可以把递归看作一个函数,也就是说,我们在递归这个函数的函数体内,利用到了递归这个函数。(套娃?)

事实上以我个人的经验(Null?),递归一般运用于带参数的函数。用到递归的任务一般都可以分解为非常多的(若干的,甚至我们可能不能提前了解这个数字的具体值)分任务。这些分任务按照一定的关系(并不一定是++哦)互相联系在一起。

当然上面这个递归被称作无限递归,我们在写递归的时候需要避免这样的问题。


递归函数

这里我们举一个我们熟悉的例子:

#include<stdio.h>
int f(int n){
	return n==0?1:f(n-1)*n;//n-->n-1-->n-2····-->0
}
int main(){
	printf("%d",f(10));
	return 0; 
}

这就是用递归的方法去写一个阶乘函数。


事实上,不用函数和递归也可以写出所有的程序,函数和递归提供了一种更为整洁和好理解的方式去编写我们的代码。

还有的就是,我这个是自己写的啊,好歹用的是自己的话啊,怎么又审核不过啊救命。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值