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

​

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

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

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

相关推荐
Doker 多克10 分钟前
Python-Django系列—部件
开发语言·python
江沉晚呤时26 分钟前
深入解析 ASP.NET Core 中的 ResourceFilter
开发语言·c#·.net·lucene
huangyuchi.28 分钟前
【C++11】Lambda表达式
开发语言·c++·笔记·c++11·lambda·lambda表达式·捕捉列表
XiaoyuEr_66881 小时前
如何创建一个C#项目(基于VS2022版)
开发语言·c#
小智学长 | 嵌入式1 小时前
单片机-89C51部分:4、固件烧录
c语言·单片机·嵌入式硬件
Mercury-circle1 小时前
JavaScript基础知识合集笔记1——数据类型
开发语言·javascript·笔记
Chase_______1 小时前
Java后端开发——分层解耦详解
java·开发语言·spring·web
喝可乐的布偶猫1 小时前
Java----super 关键字
java·开发语言
篱笆院的狗2 小时前
Java 中 ConcurrentHashMap 1.7 和 1.8 之间有哪些区别?
java·开发语言
simple_whu2 小时前
C语言标准库函数setlocale用法详解
c语言