- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 函数 教学目标、要求 了解: 函数的定义 函数的声明 函数的调用(嵌套调用、递归调用) 形式参数、实际参数和参数的传递 局部变量和全局变量 变量的存储类别(自动、静态、寄存器、外部) 变量的作用域和生存期 6.1 问题的提出与程序示例 计算机高级语言中的函数实际上是一个能完成某一独立功能的子程序,即程序模块。 程序设计人员将大而复杂的程序分解为若干相对独立而功能单一的小程序块(函数)来进行编写,并通过在各个函数之间进行调用,来实现总体上的功能。 设计C程序的过程,就是编写函数的过程,我们至少要编写一个main()函数。 执行C程序,就是执行相应的main()函数,如果在执行过程中遇到其它函数,则调用其它函数,调用完后,返回到刚才调用函数的下一条语句继续执行,而其它函数也只有在执行main()函数的过程中被调用时才会执行。 程序示例 6.2 函数基础 函数定义 就是定义函数所能实现的功能,即告诉编译系统函数所做的工作。 函数声明 即函数原型,就是告诉编译系统函数的名称、类型和形式参数表的构成。 函数的调用 在C语言中除main()由系统自动调用外,其它函数都是由main() 直接或间接调用的。 6.2 函数基础 形式参数 是变量 程序在编译时,并不为形参分配内存单元,只有此函数被调用时,形参才临时占用存储空间,并从调用函数中相应实参获得值;当调用结束后,形参所占的存储单元有被释放。 实际参数 是表达式(常量、变量或表达式) 与函数定义中的形参一一对应,即个数相等、次序一致且对应的数据类型相同或相容。 函数从用户使用角度上看,可分为标准函数(库函数)和用户定义函数。 案例回放 案例对比 6.3 函数的定义 [类型说明符] 函数名([形式参数表]) { 声明部分; 语句; } 6.3 函数的定义 函数的返回值是通过函数中的return语句获得的,一个函数只能返回一个值,但是函数中可以有一个以上的return语句。 函数值的类型,在定义函数时指定(缺省值为int类型,不返回值为void类型)。 如果函数值定义类型与return语句返回的表达式值类型不一致,以定义类型为准。 如果被调用函数中没有return语句,函数返回一个不确定的值。 6.4 函数调用 函数语句 函数名(实参表列); 如: printf(“max=%d”,c); 函数表达式 函数为表达式的一部分 如: c=2*max(a,b); 函数参数 函数的调用作为另一个函数的实参 如: m=max(a,max(b,c)); 6.4 函数调用 函数的嵌套调用 在调用一个函数的过程中,又调用了另一个函数。其关系如图所示。 案例 一、写出下列程序的运行结果 1. #include stdio.h fun(int a,int b) { if(ab) return(a); else return(b); } void main() { int x=3,y=8,z=6,r; r=fun(fun(x,y),x*z); printf(%d\n,r); } 案例 2. #include stdio.h int fun(int x,int y) { return (y-x)*x;} void main() { int a=3,b=4,c=5,d; d=fun(fun(a,b),fun(a,c)); printf(%d\n,d); } 6.5 函数说明 如果使用库函数,一般应在文件开头用#include命令将被调库函数所需的相关的信息“包含”到本源程序文件中。 如果使用用户自定义函数,而且该函数与调用它的函数在同一个文件中,一般应在主调函数中对被调函数作声明(用函数的原型声明)。 6.5 函数说明 如果被调用函数的定义出现在主调函数之前,可以不作声明。 如果在所有函数定义之前(在函数外部)已作了函数声明,则各主调函数不必对被调函数作声明。 6.6 参数传递 回 顾 1.定义函数时,形式参数不占内存单元,只能函数发生调用时,形参才被分配内存单元,而调用结束后,形参所占的内存单元被释放。 2.实参可以是常量、变量和表达式(值一定是确定的)。 3.定义函数时,需指定形参的类型。 4.形参和实参的类型相同或赋值兼容。 6.6.2 基本数据类型的形参 当形参的数据类型为基本数据类型时,参数传递方式为值传递,被调用函数本身不对实参进行操作,即使形参的值在函数中发生了变化,实参的值也完全不会影响,仍为调用前的值,这种传递方式减少了调用函数
您可能关注的文档
- 第六章预测分析.ppt
- 第七章财政会计的财务报告.ppt
- 9财务会计报告.ppt
- 第十七章控制.ppt
- 第四十一届东京车展.ppt
- 工程经济课件-4.ppt
- 海尔集团资本运营案例研究.ppt
- 金融市场学05第五章衍生市场.ppt
- 浪潮财务软件报表公式定义.ppt
- 审计文书格式.doc
- 2025年中国乙氧苯柳胺软膏市场调查研究报告.docx
- 2025年及未来5年电信设备项目市场数据调查、监测研究报告.docx
- 2025年中国产宝口服液市场调查研究报告.docx
- 2025年及未来5年远红外线热敷按摩仪之瑞颈灵项目市场数据分析可行性研究报告.docx
- 2025年中国2—氨基—4,6—二氯嘧啶市场调查研究报告.docx
- 2025年及未来5年双层风琴帘项目市场数据调查、监测研究报告.docx
- 2025年及未来5年多功能短路定位分析仪项目市场数据调查、监测研究报告.docx
- 2025年中国换芯型烟嘴市场调查研究报告.docx
- 2025年及未来5年印章防伪项目市场数据调查、监测研究报告.docx
- 2025年中国超小型冷冻修边机市场调查研究报告.docx
原创力文档


文档评论(0)