关于C++递归函数的介绍

简单概念:C++的函数可以自己调用自己,这里main函数除外。

递归用法:如果递归函数调用自己,则被调用的函数也将调用自己,这将无限循环下去,除非代码中包含终止调用链的内容,所以通常将递归调用放在if语句当中。

下面我们直接来看代码分析:

#include<iostream>

void countdown(int n);

int main(void)
{
	int n = 4;
	countdown(n);
	return 0;
}

void countdown(int n)
{
	using namespace std;//使用std命名空间
	cout << "开始倒数..." << n << endl;
	if (n > 0)
	{
		countdown(n - 1);//函数自己调用自己
	}
	cout << "开始正数..." << n <<endl;
}

下面是代码的运行结果:

 这里我们可以看出递归调用将导致一系列有趣的事件。只要 if语为 true,每个coutdown()都将在if语句中调用一次自己,当if语为false 时,程序才开始执行if之后的代码。当前调用结束后,程序控制权将返回给调用它的countdown(),而该countdown将执行其if之后的 部分,然后结束,并将控制权返回给前一个调用,依此类推。因此,上面的代码中,countdown进行了5次递归调用,则if部分将按函数调用的顺序执行5 次,然后if语句后面部分将以与函数调用相反的顺序执行 5次进入5层递归后,程序将沿进入路径返回。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值