- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十章 带参数的函数 回顾 2-1 函数是程序中的一个相对独立的单元或模块 使用函数带来的好处: 程序更清晰、易维护、分模块方便设计与开发、提高代码的重用性 C语言提供了极为丰富的内置函数,要使用这些内置函数,需要在程序前包含相应的头文件 自定义函数是用户在程序中根据需要而编写的函数 回顾 2-2 函数的结构包括:返回值类型、函数名、参数列表、函数体 函数原型说明以便向编译器指出该函数使用什么样的格式和语法 函数调用时程序控制流将转向被调函数,被调函数执行结束时,控制流返回主调函数 return 语句用于向调用函数返回值 本章目标 理解变量的作用域 理解变量的存储类型 理解两种参数传递的方式:传值、引用 熟悉带参函数的调用 熟练使用数组作为函数参数 变量的作用域 4-1 变量的作用域 4-2 变量的作用域 4-3 变量的作用域 4-4 变量的作用域4-5 变量的作用域4-6 通 知 本周四1-2 节在经贸楼208上机! 注:补本周一1-2节 存储类型 2-1 存储类型 2-2 静态局部变量 静态局部变量示例1 静态局部变量示例2 静态局部变量示例3 分析该程序的运行结果 静态全局变量 静态全局变量与普通全局变量在存储方式上完全相同 区别在于:非静态全局变量的作用域是整个源程序;而静态全局变量的作用域只是定义它的文件 函数形参和实参 传值调用 传值调用示例 引用调用 引用调用示例1 引用调用示例 引用调用示例1 引用调用示例2 引用调用示例3 分析该程序的运行结果 数组作为函数参数 数组作为参数示例1 数组作为参数示例2 数组作为参数示例3 总结 2-1 根据变量的作用域可以将变量划分为:局部变量和全局变量 根据变量的存储类型(决定生存期)将变量划分为: 自动变量、寄存器变量、静态变量、外部变量 静态局部变量的生存期为整个源程序,但其作用域为定义该变量的函数 静态全局变量的生存期为整个源程序,其作用域为定义该变量的源文件 总结 2-2 采用传值调用方式时,在被调用函数中改变形参的值,只是改变其副本值,而不会影响调用函数中实参值 采用引用调用方式时,传递的是变量的地址值,这样在被调函数中,对形参的操作实际上操作的是实参本身 数组作为函数传递时,实际采用引用调用方式 实验十 函数 实验目的与要求 1.掌握C语言函数的定义方法、函数的声明及函数的调用方法。 2.了解主调函数和被调函数之间的参数传递方式。 问题描述: 通过函数实现求多个数据的平均值。 #include #define N 10 float average float *array ; void main float score[N], aver; int i; printf \n 请输入 N 个值: \n ; for i 0; i N; i++ scanf “%f”, score[i] ; aver average score ; printf %f\n, aver ; 实参是数组名 float average float *array int i; float aver,sum 0; for i 0; i N; i++ sum+ array[i]; aver sum/N; return aver ; 形参是指针变量 * array+i float array[N] 或float array[ ] 形参是数组名 实验内容 ACCP V4.0 ACCP V4.0 作用域是某些事物起作用或有效的区域。 限于陆地 限于海洋 限于空中 程序中变量也有不同的使用范围,称为变量的作用域。变量的作用域决定变量的可访问性 void displayDiscount float discount_amt; . . . . . . . . . 局部变量:不能在函数外使用 float discount_amt; void main . . . . . . void displayDiscount . . . . . . 全局变量:可以在整个程序中使用 #include void addNumbers int num1,num2,sum; printf \n 请输入两个数: ; scanf %d %d,num1,num2 ; sum num1+num2; printf 子函数中 sum 的值是 %d \n,sum ; void main int sum 0; addNumbers ; printf \n 主函数中 sum 的值是 %d \n ,sum ; 内存 sum num2 0 45 num1 请输入两个数:56 45 子函数中sum的值是101 主函数中sum的值是 0 56 sum 101 #inc
您可能关注的文档
最近下载
- 2025湖南株洲市工会社会工作者招聘30人笔试备考试题及答案解析.docx VIP
- 2023考试软件评测师真题及答案完整版.docx VIP
- 机务基础维修执照考试资料系列 M11 .pdf VIP
- 患者跌倒、坠床等意外事件的防范制度、措施、报告制度.docx VIP
- 2025年湖南株洲市工会社会工作者招聘30人笔试备考试题及答案解析.docx VIP
- 教师资格考试初中学科知识与教学能力语文试卷及解答参考.docx VIP
- 部编版八年级道德与法治上册3.1《维护秩序》优质教案.doc
- 冷链医疗器械培训试题(含答案).docx VIP
- 2025湖南株洲市工会社会工作者招聘30人笔试备考题库及答案解析.docx VIP
- 乾坤木业业务流程诊断.ppt VIP
文档评论(0)