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

​

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

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

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

相关推荐
Peregrine92 分钟前
数据结构 - > 双链表
c语言·数据结构·算法
tmacfrank3 分钟前
Kotlin 协程十一 —— 协作、互斥锁与共享变量
java·开发语言·kotlin
lsx2024063 分钟前
Perl 哈希
开发语言
楼田莉子8 分钟前
仿muduo的高并发服务器——前置知识讲解和时间轮模块
服务器·开发语言·c++·后端·学习
花间相见9 分钟前
【MS-Swift实战】:LoRA原理+核心参数(r/alpha)调参指南(适配Qwen-1.8B医疗场景)
开发语言·r语言·swift
求知也求真佳11 分钟前
S03|待办写入:让 AI 不再走一步忘一步,多步任务不再跑偏
开发语言·agent
Metaphor69213 分钟前
使用 Python 提取 PDF 文件中的文本、表格、图片
开发语言·python·pdf
qeen8717 分钟前
【数据结构】队列及其C语言模拟实现
c语言·数据结构·c++·学习·队列
csbysj202020 分钟前
Ruby 正则表达式
开发语言
咸鱼翻身小阿橙25 分钟前
Qt P5
开发语言·数据库·qt