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;
}

​

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

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

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

相关推荐
人间凡尔赛13 小时前
Next.js 16 生产级实战:Cache Components + View Transitions 完整指南
开发语言·javascript·ecmascript
稚南城才子,乌衣巷风流17 小时前
函数:编程中的核心概念
开发语言·前端·javascript
阿米亚波17 小时前
【C++】流式数据输入处理(不完全整理)
开发语言·c++·笔记
大模型码小白17 小时前
JAVA 集合框架进阶:List 与 Set 的深度解析与实战
java·开发语言·人工智能·windows·语言模型·list·ai编程
皓月斯语18 小时前
【C++基础】三目运算符
开发语言·数据结构·c++
初願致夕霞19 小时前
C++懒汉单例设计详解
服务器·开发语言·c++
脱胎换骨-军哥19 小时前
C++分布式系统设计:从通信引擎到分布式共识
开发语言·c++·分布式
Discipline~Hai19 小时前
ARM01-ARM体系架构
linux·c语言·arm开发·架构
脱胎换骨-军哥20 小时前
C++零成本抽象理论深度拆解:现代C++如何在不牺牲性能的前提下提供高级语法封装
java·开发语言·c++
lbb 小魔仙20 小时前
VS Code Python 高级调试技巧:从入门到精通
开发语言·python