当前课程知识点:C语言程序设计(下) >  第一周:函数(一) >  1.3 函数调用、声明和返回 >  函数嵌套调用

返回《C语言程序设计(下)》慕课在线视频课程列表

函数嵌套调用在线视频

函数嵌套调用

下一节:形参与实参值传递

返回《C语言程序设计(下)》慕课在线视频列表

函数嵌套调用课程教案、知识点、字幕

我们已经知道了函数的调用

我们把它当做一种分享的乐趣

一个函数使用了另一个函数的功能

那么大家想象

函数能不能嵌套调用呢

大家看

我们管这种形式叫做函数的嵌套调用

主导函数中调用了被调函数a

被调函数a在运行过程中

又使用了被调函数b

被调函数b

在运行中

运行结束

将返回到

它的主调函数中调用它的位置

那么从屏幕上看

被调函数b返回到a中调用它的位置

然后继续后续的语句

函数a结束后

返回到主调函数中调用它的位置

继续执行

那么这个就是函数的嵌套调用的流程

我想现在我们通过一个例子

来看一下函数的嵌套调用

现在我们就来编写一个函数嵌套调用的程序

大家看

我们首先

连入标准输入输出头文件

在这个程序中

我们将用到三个被调函数

我们分别给它起名为

function1 function2 function3

在使用被调函数之前给它做个说明

这时候void大家知道 代表了无类型的

这三个函数都代表什么意思呢

我们下面做函数的定义

首先 使被调函数1

在被调函数1中

我们首先在屏幕上显示一下

现在

我在第一个函数中

大家可以想象

程序的流程运行到这的时候

屏幕上显示我现在是在执行第一个函数

接下来在函数1中

调用第二个函数 function2

第一个函数就这样

下面我们定义第二个函数

函数定义

定义首先函数名

接着在第二个函数中我们也要显示

现在我在第二个函数中

那么这句显示完了马上

就调用第三个函数

接下来第三个函数又做了什么事呢

第三个函数中

也显示一句那我现在在第三个函数中

这三个函数的功能

就是这样 总结一下

我们定义了三个功能函数

那么定义之前先对这三个函数作了说明

这样函数之间

就可以相互的调用

接下来我们来看主函数

主函数中我们首先要告诉用户

现在我在主函数中

大家都知道

每一个程序都是从主函数的运行开始

到主函数结束

主函数显示完这一句之后

调用了功能函数1

接下来最后还要以主函数结束

那现在我们也显示一下

我现在回到了主函数里

这一程序编完了

现在我们保存

大家知道

这程序的运行结果又是什么样呢

我们先来编译

改一个错

再编译

正确了

为了帮助大家来理解函数的嵌套

我现在使用跟踪的功能

请大家看

我在主函数中选择这一行做一个标记

接下来再重新编译

之后我选择debug调试

那么在这个调试功能中

我选择into function

也就是在程序的运行中

不断地点击这个键

那么程序的流程

执行到哪一行

大家就会看到这一行的不同的颜色的标记

注意看

现在程序运行到主函数中的这一行

提示我在主函数中

点击into function

执行这一句

说明上一句执行完了

我们可以通过结果来看

大家看

这一句i am in main function执行完了

接下来继续点击

进入到第一个函数中

将要执行我在第一个函数

再点击into function

上一句执行完了 我们再到屏幕上看

这一句执行完了

那么现在将要进入第二个函数

请看 点击进入第二个函数

将要执行我在第二个函数中

这条格式输出语句

进入第三个函数 再看

进入第三个函数之后结束的回到哪呢

大家思考一下

刚才说了

函数调用结束返回到调用它的那个函数

大家注意

是函数2调用它的

因此 执行完了之后

它应该返回到函数2

调用它的这条语句后继续执行

那么我们再看一下

这个屏幕的结果 大家看

第三个函数已经执行完了

那么第三个函数执行完

返回到第二个函数调用它的位置

再进一步的看

第二个函数执行完将会返回到第一个函数

调用它的位置

而第一个函数

运行结束之后

将会返回到主调函数

大家注意看

现在返回到了主函数中

我回到主函数了

这句暂时没有执行

进一步的 大家再看

现在回到了主函数了

那么程序运行结束

C语言程序设计(下)课程列表:

第一周:函数(一)

-1.1 函数定义

--内容简介

--函数是什么

--例题演示

--知识点总结

-1.1 函数定义--作业

-1.2 模块化程序设计

--由生活中的例子介绍模块化概念

--模块化程序设计总结

-1.3 函数调用、声明和返回

--函数调用的过程

--函数嵌套调用

-1.4 函数间参数传递

--形参与实参值传递

--地址传递-数组名做函数参数

--函数返回语句和返回值

--小结

--html

-1.4 函数间参数传递--作业

第二周:函数(二)

-函数递归调用

--6.5.1 递归问题开场白

--6.5.2 递归定义和调用过程

--6.5.3 运行程序

--6.5.4 汉诺塔介绍

--6.5.5 汉诺塔讲解

--6.5.6 汉诺塔程序运行

--6.5.7 递归调用例题

--6.5.8 递归总结

--html

--html

--html

--html

--html

--html

-函数递归调用--作业

第三周:函数(三)

-3.1 变量存储属性

--开场

--局部变量全局变量

--静态存储与动态存储

--存储类别小结

--html

--html

--html

--html

--html

-3.1 变量存储属性--作业

-3.2 编译预处理

--编译预处理开头

--编译预处理内容

--库函数

--函数总结

--综合例子

--html

-3.2 编译预处理--作业

第四周:指针(一)

-4.1 指针的定义、初始化和引用

--本周内容简介

--从变量的地址理解指针(1)

--从变量的地址理解指针(2)

--从数据交换看指针的应用(1)

--从数据交换看指针的应用(2)

--从数据交换看指针的应用(3)

-4.1 指针的定义、初始化和引用--作业

-4.2 指针与数组

--指针与数组

--用指针变量操作数组元素

--用指针变量操作数组元素实例

--Video

-4.2 指针与数组--作业

-虚拟实验:指针的基本概念实验

第五周:指针(二)

-5.1 指针与字符串

--本周开篇介绍

--指针与字符串

--指针与字符串小结

-5.1 指针与字符串--作业

-5.2 多维数组指针

--指针与多维数组

--指针变量访问二维数组

--一维数组的指针变量

--指向数组的指针函数参数

--html

--html

--html

--html

--html

--html

--html

--html

-5.2 多维数组指针--作业

第六周:指针(三)

-6.1指针与函数

--本周开篇介绍

--指针指向函数

--返回指针值的函数

--html

--html

--html

-6.1指针与函数--作业

-6.2指针与指针

--引入指针数组

--指针数组

--二级指针

--指针内容小结

--html

--html

--html

--html

-6.2指针与指针--作业

第七周:链表(一)

-7.1 结构的概念

--Video

--Video

--Video

--Video

--html

--html

-7.1 结构的概念--作业

-7.2 结构数组

--7.2.1 结构体数组

--Video

--Video

--html

-7.2 结构数组--作业

-7.3 结构指针

--Video

--Video

--Video

--html

-7.3 结构指针--作业

-7.4 结构与函数

--Video

--html

-7.4 结构与函数--作业

-7.5 联合

--Video

--Video

--html

-7.5 联合--作业

第八周:链表(二)

-8.1 typedef自定义类型

--自定义类型

-8.1 typedef自定义类型--作业

-8.2 枚举类型

--枚举类型

-8.2 枚举类型--作业

-8.3 链表的概念

--为什么使用链表

--链表的定义和功能

-8.3 链表的概念--作业

-8.4 链表的基本操作

--创建链表的步骤

--创建链表的过程

--访问链表中的节点

--约瑟夫问题

--html

--html

-8.4 链表的基本操作--作业

第九周 文件

-9.1 文件概述

--文件概念

--文件分类

-9.1 文件概述--作业

-9.2 文件型指针

--文件结构与指针

--设备文件

--html

-9.2 文件型指针--作业

-9.3 文件的打开与关闭

--文件读写方式

--文件读写操作

-9.3 文件的打开与关闭--作业

-9.4 文件的顺序读写

--文件顺序读写及字符输入输出

--字符串输入输出

--格式化及数据块输入输出

--html

-9.4 文件的顺序读写--作业

-9.5 文件的随机读写

--文件随机读写

-9.5 文件的随机读写--作业

-9.6 文件检测

--文件检测

-9.6 文件检测--作业

-9.7 文件应用实例

--文件应用实例

--html

--html

第十周 总结与练习

-10.1 C语言知识总结

--程序调试概念

--软件测试方法

--程序跟踪调试

--C语言语法要点

--标识符及运算符

--程序设计流程

--数组、函数及指针

--结构和文件

-10.1 C语言知识总结--作业

-10.2 C语言练习

--程序设计方法

--图像合成例子

--html

期末考试复习题

-期末考试复习题

--html

期末考试复习题答案

-期末考试复习题答案

--html

函数嵌套调用笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。