C语言 函数的嵌套与递归 调用

本文 我们来说函数的嵌套调用和递归调用

在很多大型项目中 我们肯定不可能将所有逻辑都写在一个函数中 肯定要按功能拆解成多个特定的功能函数
函数并不允许嵌套调用,但是 允许在逻辑代码中嵌套调用
所谓函数嵌套调用 就是在一个函数中调用另一个函数,而被调用的函数 又去调用其他函数

下图 是一个函数多次互相嵌套调用的结构
在这里插入图片描述
首先进入函数 main 执行函数代码 然后调用 Fun1 函数 执行 Fun1 执行逻辑代码 走到 调用 Fun2 处 走进 Fun2
执行完毕后 回到 Fun1 剩余部分 继续执行代码
Fun1 执行完毕 回到 main 执行完毕后返回

然后 我们来说函数的递归调用

我们 有一个 从前有座山 山里有座庙 庙里有个老和尚 老和尚给小和尚讲故事 讲从前有座山 山里有个庙 …

反复讲故事 就可以理解为 反复调用自己
计算机中 一个过程 反复调用自己 它就定义为一个递归过程

C语言 支持递归 递归是一种特殊的嵌套调用

我们将递归函数 分为 直接递归调用 和间接递归调用

之间递归调用是指 在方法中之间写明逻辑 执行到某个点 调用自己
例如

int accumulation() {int rox = 3 + 7;printf("%d\n", rox);accumulation();
}

我们在 accumulation中直接调用 accumulation 自身 这就是直接调用

然后

int accumulation() {int rox = 3 + 7;printf("%d\n", rox);yml();
}int yml() {int rox = 3 + 7;printf("%d\n", rox);accumulation();
}

accumulation中 调用了 yml
而 yml 中 又会调用 accumulation
多个函数 互相调用形成闭环 就是 间接递归调用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/678844.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多模态EDA论文小记

论文地址 该论文主要改进点是:通过动态化局部搜索中每个集群大小,高斯和柯西分布共同产生个体。总的来说改进点不多,当然也可能是笔者还没发现。 局部搜索 划分集群 划分集群有两个策略分别是: 随机生成一个点作为中心点&…

python:画饼图

我现在因工作需要在写一篇中文文章,领导要我用python处理数据和画图,那我也刚好学习一下python画图。 import matplotlib.pyplot as plt # 饼图数据 labels [A, B, C, D] sizes [15, 30, 45, 10] # 每个部分的大小 # 绘制饼图 plt.figure(figsize(6,…

STM32F1#1(入门了解)

一、STM32开发平台和工具 1.1 STM32芯片介绍 典型微控制器由CPU(运算器、控制器)、RAM、ROM和输入输出组成。 1.2 STM32核心板 STM32核心板配件: ①JTAG/SWD仿真-下载器 ②通信-下载模块 ③OLED显示屏 1) 通信-下载模…

接收区块链的CCF会议--NDSS 2025 截止7.10 附录用率

会议名称:Network and Distributed System Security Symposium (NDSS) CCF等级:CCF A类学术会议 类别:网络与信息安全 录用率:2024年接收率19.5% Submissions are solicited in, but not limited to, the following areas: Ant…

密码口令初步

一,弱口令(ctfhub) 1.打开环境,发送到bp的instruder板块,一般id默认为admin,也可以用bp找出来,这里就是 2.先clear ,再把password等号后面添加进来(add)&am…

学QT的第三天~

ikun登录界面完善 #include "mywidget.h" void MyWidget::bth1() { if(edit3 ->text()"520cxk"&&edit4 ->text()"1314520") { //1.实例化一个QmessageBox类的对象 QMessageBox box(QMessageBox::Information, //图标 "恭喜…

cesium雷达扫描(消逝圆效果)

cesium雷达扫描(消逝圆效果) 以下为源码直接复制可用 1、实现思路 通过修改“material”材质来实现轨迹球效果 2、示例代码 1、index.html <!DOCTYPE html> <html lang="en"><head><!

基于JSP的酒店客房管理系统(二)

目录 第二章 相关技术介绍 2.1 Jsp的简介 2.2 sql server 2005 的简介 第三章 系统的分析与设计 3.1 系统需求分析 1&#xff0e;理解需求 2&#xff0e;需求分析 3.2开发及运行环境 3.3功能模块的设计 3.3.1 设计目标 3.3.2 客房管理系统前台的设计 3.3.3 操作员管…

Learning Continuous Image Representation with Local Implicit Image Function

CVPR2021https://github.com/yinboc/liif 问题引入 图像普遍都是使用像素来表示的&#xff0c;而现实世界是连续的&#xff0c;所以本文借鉴3D中neural implicit representation的思想&#xff0c;以连续的方式表示图像&#xff1b;模型输入坐标值和坐标附近的特征&#xff0…

matplotlib/seaborn 绘图可视化全面总结

1.概述 使用Matplotlib 绘图实现可视化时&#xff0c;会面临不同的需求有所调整&#xff0c;本文档重点对绘图过程中产生的一些小众需求进行全面总结&#xff0c;其他任务时可以随时即抽即用。 2.绘图 2.1 一般绘图 plt.figure() 参数设置说明 matplotlib.pyplot.figure( …

python如何整体缩进

python自带编辑器的缩进和取消缩进快捷键&#xff1a; 整体缩进 Ctrl【 整体取消缩进 Ctrl】 pycharm编辑器的缩进和取消缩进快捷键&#xff1a; 整体缩进&#xff1a; tab 整体取消缩进&#xff1a; tabshift

2024全国计算机专业大学排名前10强名单

根据2024软科中国大学专业排名——计算机科学与技术专业&#xff0c;全国计算机专业最好的5所大学分别是清华大学、浙江大学、北京大学、国防科技大学和北京航空航天大学等&#xff0c; 以下是上大学网&#xff08;https://www.sdaxue.com/&#xff09;整理的全国计算机专业&a…