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

​

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

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

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

相关推荐
侦探观察几秒前
南非女性旅游绑架风险分析及防范措施
android·大数据·开发语言·百度·网络安全·旅游
爱吃大芒果1 分钟前
Flutter 热重载与热重启深度解析:提高开发效率的关键
开发语言·javascript·flutter·ecmascript·harmonyos·gitcode
Hui Baby3 分钟前
Mq扩充队列提高并发
开发语言·后端·ruby
秦jh_6 分钟前
【Qt】信号与槽
服务器·开发语言·数据库·qt
算法与编程之美7 分钟前
探索不同的损失函数和batch_size对分类精度的影响
开发语言·人工智能·分类·数据挖掘·batch
heartbeat..7 分钟前
从 0 到 1 学 Java 多线程:线程是什么?怎么用?如何保证安全?
java·开发语言·线程
缘三水11 分钟前
【C语言】16.指针(6)进阶篇目——数组与指针笔试题目详解
c语言·开发语言·指针·语法
薛不痒11 分钟前
机器学习之Python中的numpy库,pandas库
开发语言·python
赵谨言12 分钟前
基于深度迁移学习的脑电图分类技术在脑机接口的应用
大数据·开发语言·经验分享
wjs202417 分钟前
迭代器模式
开发语言