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

​

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

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

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

相关推荐
所愿ღ4 分钟前
SSM框架-Spring1
java·开发语言·笔记·spring
威迪斯特13 分钟前
Gorilla框架:Go语言生态中的模块化开发利器
运维·开发语言·后端·golang·web框架·维护·gorilla
格林威13 分钟前
面阵相机 vs 线阵相机:堡盟与海康相机选型差异全解析 附C# 实战演示
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
A_aspectJ20 分钟前
【Java基础开发】基于 Java Swing 开发的简易计算器 - 支持键盘
java·开发语言
光影少年22 分钟前
vite+rust生态链工具链
开发语言·前端·后端·rust·前端框架
skywalk816322 分钟前
当前有什么流行的lisp的web框架吗?
开发语言·前端·lisp
天若有情67325 分钟前
C++进阶:普通重载运算符 vs 隐式类型转换重载运算符,一篇讲透区别
开发语言·c++·算法
流年如夢25 分钟前
文件读写操作与易错点总结
c语言
ZWZhangYu28 分钟前
MCP 实战:从协议原理到 Java 自定义工具服务落地
java·开发语言·人工智能
知识分享小能手29 分钟前
R语言入门学习教程,从入门到精通,R语言基础 - 完整知识点与案例代码(1)
开发语言·学习·r语言