C语言的函数定义是互相平行、独立的,也就是说,在定义函数时,一个函数内不能再定义另一个函数,即不能嵌套定义,但可以嵌套调用函数,即,在调用一个函数的过程中,又调用另一个函数。
如下图所示:表示的是两层嵌套(连main一共三层函数)。

其执行过程时:
①执行main函数的开头部分
②遇到函数调用语句,调用函数a,流程转去函数a
③执行a函数的开头部分
④遇到函数调用语句,调用函数b,流程转去函数b
⑤执行b函数,如果再无其他嵌套的函数,则完成b函数的全部操作
⑥返回到a函数中调用b函数的位置
⑦继续执行a函数中尚未执行的部分,直到a函数结束
⑧返回main函数中调用a函数的位置
⑨继续执行main函数中剩余部分直到结束
【例题】
输入4个整数,找出其中最大的数。用函数的嵌套调用来处理。
【思路】
定义函数Max4,用来实现找出4个数中的最大者这个功能。定义Max2函数,用来实现找出两个数中的大者。在main函数中调用Max4函数,然后在Max4中调用另一个函数Max2。在Max4中通过多次调用Max2函数,可以找出4个数中的大者,然后把它作为函数值返回main函数,在main函数中输出结果。
【代码实现】

int Max2(int x,int y)
{return(x>y?x:y);
}
int Max4(int w,int x,int y,int z)//定义Max4函数
{int Max2(int x,int y);//对Max2的函数声明int m;m=Max2(w,x);//调用Max2函数,得到w,x两个数中的大数放在m中m=Max2(m,y);//调用Max2函数,得到w,x,y三个数中的大数放在m中m=Max2(m,z);//调用Max2函数,得到w,x,y,z四个数中的大数放在m中return m;//把m作为函数值带回main函数
}
int main()
{int a,b,c,d;printf("从键盘输入4个整数:\n");//提示输入4个数scanf("%d%d%d%d",&a,&b,&c,&d);//输入4个数int m;m=Max4(a,b,c,d);//调用Max4函数,得到4个数中最大者printf("4个数中最大的数为:%d",m);//输出4个数中最大者return 0;
}

【结果】

C语言 函数的嵌套调用相关推荐

  1. vue函数如何调用其他函数?_C语言函数学习-函数的嵌套调用

    文章logo 函数的嵌套调用 C语言中不允许作嵌套的函数定义.因此各函数之间是平行的,不存在上一级函数和下一级函数的问题.但是C语言允许在一个函数的定义中出现对另一个函数的调用.这样就出现了函数的嵌套 ...

  2. 求222222c语言递归函数,C语言ch函数的嵌套调用和递归调用.pptx

    C语言ch函数的嵌套调用和递归调用.pptx 2012/10/221 上一节我们学到了 n函数的定义 n形参 n函数的声明 n函数的调用 n实参 n函数的调用过程 n局部变量(包括形参)何时分配内容. ...

  3. 【C语言】函数 ---- 函数的嵌套调用和链式访问、函数的声明和定义、变量的声明和定义、函数递归与迭代、递归时的栈溢出问题

    函数 一.函数的嵌套调用和链式访问 1.嵌套调用 2.链式访问 2.1strlen()函数 2.2printf()函数 二.函数的声明和定义 1.函数声明和定义的介绍 2.函数声明和定义的使用 三.变 ...

  4. 函数的嵌套调用-函数嵌套调用的执行线路图

    def test1():print("*" * 50)def test2():print("-" * 50)# 函数的嵌套调用test1()print(&quo ...

  5. C语言 函数声明和调用 - C语言零基础入门教程

    目录 一.简介 二.函数声明和定义 1.函数声明:不需要实现这个函数的功能 2.函数定义:必须实现这个函数的功能 三.函数调用 四.函数形参和实参 五.猜你喜欢 零基础 Python 学习路线推荐 : ...

  6. 函数的嵌套调用、嵌套定义

    函数的嵌套调用 函数内部调用其他函数 def index():print('from index')def func():index()print('from func')func()def my_m ...

  7. C语言函数之递归调用

    提示:本文主要是掌握函数的递归 函数递归 前言 什么是递归 递归的两个必要条件 递归与迭代的关系 递归函数的优缺点 什么时候使用递归 总结 前言 函数是学习C语言的最重要知识点之一,要学好这门编程语言 ...

  8. c语言函数之间互相调用符号,如何实现C和C++函数互相调用

    链接库头文件: //head.h class A { public: A(); virtual ~A(); int gt(); int pt(); private: int s; }; .cpp // ...

  9. python函数的嵌套调用_python函数的嵌套调用

    我们之前的代码都是定义函数然后直接调用,但是没有在一个函数内调用另外一个函数,今天就感受下函数嵌套调用. 提示:如果你想当然的认为函数嵌套是在函数内部又嵌套定义一个函数这种操作的话,那么这叫做闭包.相 ...

最新文章

  1. java 调用启动远程shell脚本,启动spark
  2. linux系统运行状态检查
  3. gin 编译路径错误_[系列] Gin框架 - 自定义错误处理
  4. 如何在SQL Server Reporting Services中使用表达式来创建有效的报告
  5. Java--工厂模式
  6. ASP(从前) vs ASP.NET(之后)
  7. 初学平面设计者应该掌握的软件是AI
  8. 用python模拟clark变换和park变换
  9. Aegisub制作字幕从入门到精通:制作srt字幕,制作ass字幕,压制字幕和视频
  10. PHP连接并使用人大金仓数据库kingbase
  11. 2020大疆校招嵌入式B卷编程题
  12. 《码处高效:Java开发手册》之代码风格
  13. 自然语言处理学习笔记-lecture08-语义分析
  14. html 滚动 切换背景,在滚动页面时渐变切换背景色
  15. 一个老果粉的华为Mate20 Pro深度体验
  16. 程序员不能错过的28份技术知识图谱,你的进阶路上必备
  17. pandas用众数填充缺失值_数据处理之缺失值填充
  18. MICRO 2020 论文阅读笔记:CATCAM: Constant-time Alteration Ternary CAM with Scalable In-Memory Architecture
  19. 「虚拟社交」爆火,资深玩家「当道」
  20. 手把手教你使用pytorch实现双向LSTM机器翻译

热门文章

  1. J2EE基础教程(1):简介和windows下环境配置
  2. 推荐一款免费的数据库管理工具,比Navicat还要好用,功能还很强大
  3. c语言编辑饮酒卷,李白饮酒——蓝桥杯
  4. 刷个openwrt,并加入改写的802.1X认证客户端(iNode认证)
  5. 第二篇:在MVPArms项目使用了androidx和butterknife报错
  6. IC卡解密从零开始学2 版本更新! 解密工具PN532-mfoc-mfcuk-GUI V2.1 By:lookyour
  7. 基于GIS简单处理世界土壤数据库(HWSD)的中国土壤数据集
  8. 打印机打印服务自动关闭与无法启动问题
  9. 【概念梳理】NMS 非极大值抑制
  10. MySQL数据库期末考试试题及参考答案(04)