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

​

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

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

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

相关推荐
lightqjx14 小时前
【C++】list 常见使用和模拟实现
开发语言·c++
ceclar12314 小时前
C++容器queue
开发语言·c++
草莓工作室14 小时前
数据结构13:排序
c语言·数据结构·排序算法
陈皮话梅糖@14 小时前
Speckit和Claude 的初体验
开发语言·ide
屈冠成14 小时前
C语言数组:编辑世界的坚固桥梁
c语言·开发语言·算法
zzzyyy53815 小时前
STL简介
开发语言·c++
zyq99101_115 小时前
树与二叉树的奥秘全解析
c语言·数据结构·学习·1024程序员节
艾莉丝努力练剑15 小时前
【C++:继承】C++面向对象继承全面解析:派生类构造、多继承、菱形虚拟继承与设计模式实践
linux·开发语言·c++·人工智能·stl·1024程序员节
报错小能手15 小时前
项目——基于C/S架构的预约系统平台(3)
linux·开发语言·笔记·学习·架构·1024程序员节
lsx20240615 小时前
jQuery Mobile 实例
开发语言