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

​

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

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

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

相关推荐
曹牧2 分钟前
Java:Jackson库序列化对象
java·开发语言·python
MediaTea11 分钟前
Python:依赖倒置原则(DIP)
开发语言·python·依赖倒置原则
sinat_6020353622 分钟前
翁恺 11字符串
c语言
Meteors.25 分钟前
安卓进阶——原理机制
android·java·开发语言
深圳佛手32 分钟前
LangChain 提供的搜素工具SerpAPIWrapper介绍
开发语言·人工智能·python
apihz35 分钟前
反向DNS查询与蜘蛛验证免费API接口详细教程
android·开发语言·数据库·网络协议·tcp/ip·dubbo
渡我白衣38 分钟前
计算机组成原理(4):计算机的层次结构与工作原理
运维·c语言·网络·c++·人工智能·笔记·硬件架构
好学且牛逼的马39 分钟前
【手写Mybatis | version0.0.3 附带源码 项目文档】
开发语言·php·mybatis
海上彼尚41 分钟前
Go之路 - 2.go的常量变量[完整版]
开发语言·后端·golang
kkk_皮蛋1 小时前
深入理解 WebRTC 临界锁实现与 C++ RAII 机制
开发语言·c++·webrtc