C语言中关于函数递归的理解

递归的概念:如果一个对象部分包含它自己,或者利用自己定义自己,则称这个对象是递归的;如果 一个过程直接或间接调用自己,则称这个过程是一个递归过程。递归的主要思考方式在于:将大事化小

我们先看一个例子

题目:输入一个无符号数,并输出这个数的每一位

cpp 复制代码
​#include"stdio.h"
void print(unsigned int n)        
{
    if(n>9)
        print(n/10);
    printf("%u ",n%10);
}
int main()
{
    unsigned int num=0;        //unsigned:无符号类型
    scanf("%u",&num);          //%u 无符号的数据类型
    print(num);
    return 0;
}

​

那么我们来看看具体的运行方式:

注意:函数每次递归都会开辟出一个空间,也称为栈,而执行完这个栈里面的所有东西之后,这个栈就会被销毁

现在已经把条件执行完了,那么接下来就要开始返回了

相关推荐
白露与泡影15 小时前
Java关键字解析之final:不可变的本质、设计哲学与并发安全
java·开发语言·安全
喵了meme15 小时前
C语言实战3
c语言·开发语言
Cigaretter715 小时前
Day 31 类的装饰器
开发语言·python
DsirNg15 小时前
JavaScript 事件循环机制详解及项目中的应用
开发语言·javascript·ecmascript
研☆香15 小时前
深入解析JavaScript的arguments对象
开发语言·前端·javascript
zzzgw_200115 小时前
io_uring的机理和跟epoll的对比
java·开发语言
AuroraWanderll15 小时前
C++类和对象--访问限定符与封装-类的实例化与对象模型-this指针(二)
c语言·开发语言·数据结构·c++·算法
一只小bit15 小时前
Qt Widget 控件介绍:覆盖常用属性及API
开发语言·c++·qt·命令模式·cpp
white-persist15 小时前
网络空间安全核心领域技术架构深度解析
c语言·开发语言·网络·python·安全·网络安全·架构
qq_4639448615 小时前
如何修改Anaconda虚拟环境的名字?
开发语言·python·anaconda