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-171 Neo4j 备份与恢复 + 预热与执行计划实战
java·开发语言·数据库·性能优化·系统架构·nosql·neo4j
怪兽20142 小时前
fastjson在kotlin不使用kotlin-reflect库怎么使用?
android·开发语言·kotlin
ClearLiang2 小时前
Kotlin-协程的挂起与恢复
开发语言·kotlin
彭同学学习日志2 小时前
Kotlin Fragment 按钮跳转报错解决:Unresolved reference ‘floatingActionButton‘
android·开发语言·kotlin
海域云赵从友3 小时前
破解跨境数据传输瓶颈:中国德国高速跨境组网专线与本地化 IP 的协同策略
开发语言·php
咚咚王者3 小时前
人工智能之编程进阶 Python高级:第九章 爬虫类模块
开发语言·python
深蓝海拓3 小时前
使matplot显示支持中文和负号
开发语言·python
syt_biancheng4 小时前
Day3算法训练(简写单词,dd爱框框,3-除2!)
开发语言·c++·算法·贪心算法
864记忆4 小时前
Qt Network 模块中的函数详解
开发语言·网络·qt
864记忆4 小时前
Qt Sql 模块中的函数详解
开发语言·网络·qt