- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第07章-函数与变量作用域
第7章 函数与变量作用域 C语言是通过函数来实现模块化程序设计的。 教学目的: 掌握函数的定义与调用,变量的作用域; 了解函数的嵌套与递归调用,内部、外部函数特点,以及变量的存储特性。 教学内容: 7.1* 函数的定义与调用 7.2 函数的嵌套调用与递归调用 7.3 内部函数与外部函数 7.4* 内部变量与外部变量 7.5 变量的存储特性 本章要点 本章作业与上机实践 7.1* 函数定义与函数调用 7.1.1 函数定义 任何函数都是由函数说明和函数体两部分组成。 1.分类 根据函数有无参数,将函数分为无参函数和有参函数。 2 函数类型 ①函数类型应与return语句中“返回值表达式”的类型一致。 如果不一致,则以函数类型为准。 ②如果缺省函数类型,则系统一律按int型处理。 良好的程序设计习惯: 为了使程序具有良好的可读性并减少出错,将无返回值函数定义为空类型void; 同时,也不使用系统对函数类型的缺省处理。 7.1.2 函数调用与返回 1、对被调用函数的说明和函数原型 1 函数说明的一般格式 在新标准中,采用函数原型方式,对被调用函数进行说明: 函数类型 函数名 形参表 ; 2 函数说明的两种方式 ① 谁调用谁说明:函数说明语句放在调用函数的函数体中。 例如,在[案例7.1]主函数main 中: void main void int max int n1, int n2 ; …… ②预先统一说明——函数说明通常放在所有函数定义体之前。 在这种方式下,所有调用函数都无需再对自定义函数进行说明。 例如,在[案例7.1]中,可以将对max 函数的说明放在程序文件开始处: void main void int max int n1, int n2 ; …… 显然,对于被多个函数调用的自定义函数而言,采用预先统一说明方式进行说明,可以有效地减少函数说明次数。 注意: 如果被调用函数的定义体,出现在调用函数之前,可以缺省说明。 2、函数调用 函数名 [实参表] 例如,在[案例7.1]的主函数中: printf ……, max num1, num2 ; 注意:调用有参函数,必须提供实参 常量/变量/表达式/函数 。调用时,实参必须具有确定的值,且与形参个数相等、类型匹配。 1 调用方式 ① 语句方式——无返回值函数的调用,可作为一条独立的语句。 例如,printf 、scanf 等库函数的调用,均作为一条独立的语句。 ② 表达式方式——有返回值函数作为表达式的一项,以函数返回值参与表达式的运算。 例如,“max max x, y ”是一个赋值表达式,把max 函数的返回值赋予变量max。 2 断点与函数调用的返回 断点——被调用函数执行完毕,返回调用函数后继续执行的位置。 调用函数中的断点位置分两种情况: ① 语句调用方式:断点为函数调用语句的下一条语句。 例如,[案例7.1]中的语句调用“printf …… ;”,其断点为该语句的下一条语句“getch ;” 。 ② 表达式调用方式:断点为函数调用所在的表达式。 例如,在[案例7.1]中,“printf ……, max num1, num2 ;”语句中的表达式调用“max num1, num2 ”: 其断点为该表达式调用所在的表达式“max num1, num2 ”(在本例中,“max num1, num2 ”函数调用既是表达式调用,本身又构成一个简单表达式)。 7.1.3 参数传递 发生函数调用时,根据参数值的性质不同,将参数传递分为两种: 1 值传递——参数值是一个一般数据 整形、实型、字符型数据等 。 系统把实参值复制1份给形参;被调用函数结束时,形参值不能传回给实参。 2 地址 引用 传递——参数值是一个地址。 1 形参变量只有在被调用时,才分配内存单元;调用结束时,立即被释放。 因此,形参只有在该函数内有效。调用结束,返回调用函数后,则不能再使用该形参变量。 2 实参和形参占用不同的内存单元,即使同名也互不影响。 7.1.4 小结 1.函数定义不允许嵌套。 2.调用有参函数时,实参的个数和类型,必须与形参匹配。 3 .函数调用的两种方式与断点位置 1 语句方式:断点为函数调用语句的下一条语句。 2 表达式方式:断点为函数调用所在的表达式。 4.参数传递分两种: 1 值传递:单向传递。 2 地址 引用 传递。 [返回] 7.2 函数的嵌套调用和递归调用 7.2.1 函数的嵌套调用 [案例7.3] 计算∑ 1!+2!+ …… + n! n∈[1,20]的整数,从键盘输入 。 算法设计要点: 本案例可以设计2个函数:f
您可能关注的文档
- 宁德市公路路政管理所所长(副所长)工作绩效考评标准.doc
- 小学数学公式大全总结.doc
- 小学数学分层作业设计丁志平.doc
- 小学数学单位换算及公式大全.doc
- 小学数学常用公式.doc
- 宁波北常见基坑支护形式介绍.ppt
- 小学数学总复习量与计量练习题.doc
- 小学数学概念总汇.doc
- 小学数学知识点汇总1.doc
- 小学数学第二次作业教学媒体选择分析表.doc
- 西部证券-2026年通信行业投资策略报告-聚焦AI算力供不应求和新技术演进低轨卫星进入景气周期.pdf
- 中信建投-投资组合-大类资产配置新框架-9-牛市的启动、调整和终结.pdf
- 东兴证券-电子行业2026年度策略-掘金AI创新周期.pdf
- 国金证券-众鑫股份-603091-乘势纸浆模塑渗透率高速提升,范围经济与成本定价权构筑全球龙头.pdf
- 国盛证券-基础化工行业深度-3D打印-解锁高端制造的“万能钥匙”.pdf
- 华创证券-厦门象屿-600057-深度研究报告-六字新模式、迈向新估值一一大物流时代系列研究(29).pdf
- 银河期货-专题报告-期货主力合约切换规律探究.pdf
- 安永-2025全球商务区吸引力报告 - 经济引擎再思考-全球商务区的演进之路.pdf
- 兴业证券-休闲服务-海外社服2026年投资策略-政策托底消费分层聚焦高景气细分板块和穿越周期龙头.pdf
- 国海证券-非银金融行业专题研究-中国券商出海征途,历史演进与全球机遇.pdf
原创力文档


文档评论(0)