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

​

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

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

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

相关推荐
沐知全栈开发12 小时前
SQLite Limit 子句详解
开发语言
资深web全栈开发13 小时前
Go语言从1.18到1.25版本功能更新详解
开发语言·后端·golang
YouEmbedded13 小时前
函数模板与类模板——泛型编程
开发语言·c++·函数模板·类模板
听风吟丶13 小时前
微服务性能压测与容量规划实战:从高并发稳定性到精准资源配置
java·开发语言
小此方13 小时前
Re:从零开始学C++(一)基础精讲·上篇:命名空间、输入输出、缺省参数、函数重载
开发语言·c++
行云流水200013 小时前
编程竞赛语言选择:为什么优先学C++?聚焦竞赛属性的语法突破
开发语言·c++
aini_lovee13 小时前
基于边缘图像分割算法详解与MATLAB实现
开发语言·算法·matlab
艾上编程13 小时前
第一章——办公自动化之Excel批量合并工具:Python助力高效办公
开发语言·python·excel
火山灿火山13 小时前
Qt常用控件(五) - 多元素控件
开发语言·qt
熬了夜的程序员13 小时前
【Rust学习之路】序
开发语言·后端·学习·rust