- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 函数 C语言标准库中有很多已定义的函数,如printf()、scanf()、fabs()、sqrt()等函数,在使用这些库函数时,需要使用文件包含命令(#include)将带有该函数定义的头文件包含到当前C程序中。对于标准库函数中没有提供的函数,常常需要用户自己编写自定义函数。 函数是一个自成体系的模块,它可以写成一个独立的源文件,并可编译成.obj文件。其它程序要调用该函数时,可以使用工程文件或文件包含命令(#include)将它们连接在一起就可以了。 函数模块化程序设计的基础,把完成某一件事的程序写 成函数,供用户重复调用,这样既提高了程序的开发速度, 又改善了程序的可读性。 在引入函数前,我们写的程序只用主程序(也叫主函数 main())。在一个主函数中不能定义同名变量,引入函数 后,给变量的定义帯来了更大的空间。一个函数内部不能有 同名变量,而不同函数间可以定义同名变量,即有了局部变 量的摡念。定义在函数内部的变量叫局部变量,定义在函数 体外部定义的变量叫外部变量(以后章节会介绍)。由此可 见,引入函数后,给程序设计带来了很多新的概念。这些概 念在程序设计中是非常重要的。 函数的重点和难点是函数的参数传递问题,大部分书籍 都把函数的参数传递分为“单向传递和双向传递”(这种表述 方法是不确切的),而没有揭示函数参数传递的本质是地址 问题,因而,学完函数后,学生对函数的参数传递掌握的不 好。 本书将函数调用分为值调用(实参为值)和地址调用(实参为地址)两种: (1).值调用: 值调用指的是[实参变量]传递给[形参变量]的是值,这 时,既使主程序中的变量和函数中的变量同名,但它们 存储在不同的地址上(函数中的变量占用堆栈空间), 函数中变量的值发生改变,并不会改变主程序中变量的值。当 从函数返回到主程序后,函数中变量的值被释放(静态变量 的值不释放),主程序中变量的值没有被改变。 (2).地址调用: 地址调用指的是[实参变量]传递给[形参变量]的是地址。 这时函数中的变量和主程序中的变量是在同一个地址上 ,即相当于将函数直接指向主程序中要操作的变量,然后进 行函数操作,当从函数返回后,主程序中的变量的值被改 变。 7.1为什么要引入函数 (1) 模块化 main() main() {做事情a(多条语句); {调用函数fun()(一条语句); … … … … 做事情a (多条语句); 调用函数fun()(一条语句); } } fun() //函数 { 做事情a(多条语句); } 程序1(不用函数) 程序2(用函数) 从上面两个程序可以看出用函数的优点:模块化。 (2) 可定义同名变量、局部变量和外部变量 引入函数后,可定义同名变量、局部变量和外部变量,如下列程序1和程 序2所示。 main() main() { { int a; int a; … … } } int b; //外部变量(不在函数体内) fun() //函数 { int a } 程序1(只有主函数) 程序2(有主函数和函数) 在程序2中,主函数中的变量a和函数中的变量a同名,但不是同一 个变量(存储在不同的地址上),其作用域不一样,我们称它们为 局部变量(在各自的函数体内起作用)。变量b在函数体外,我们 称它为外部变量。 7.2 主函数与函数、函数与函数之间的关系 从下图(图7-1)可以看出
您可能关注的文档
- AutoCAD应用教程 第2版 教学课件 作者 李善锋 姜东华 姜勇 第8章 在图形中添加文字.ppt
- AutoCAD应用教程 第2版 教学课件 作者 李善锋 姜东华 姜勇 第9章 标注尺寸.ppt
- AutoCAD应用教程 第2版 教学课件 作者 李善锋 姜东华 姜勇 第10章 参数化绘图.ppt
- AutoCAD应用教程 第2版 教学课件 作者 李善锋 姜东华 姜勇 第11章 图块及外部引用.ppt
- AutoCAD应用教程 第2版 教学课件 作者 李善锋 姜东华 姜勇 第12章 机械绘图实例.ppt
- AutoCAD应用教程 第2版 教学课件 作者 李善锋 姜东华 姜勇 第13章 建筑绘图实例.ppt
- AutoCAD应用教程 第2版 教学课件 作者 李善锋 姜东华 姜勇 第14章 三维绘图基础.ppt
- AutoCAD应用教程 第2版 教学课件 作者 李善锋 姜东华 姜勇 第15章 创建3D实体、曲面及投影视图.ppt
- AutoCAD应用教程 第2版 教学课件 作者 李善锋 姜东华 姜勇 第16章 编辑3D对象.ppt
- AutoCAD应用教程 第2版 教学课件 作者 李善锋 姜东华 姜勇 第17章 打印图形.ppt
- C 程序设计教程 教学课件 作者 戴水贵 敖志刚 俞海英 编著 第8章 结构体和共用体.ppt
- C 程序设计教程 教学课件 作者 戴水贵 敖志刚 俞海英 编著 第9章 文件.ppt
- C 程序设计教程 教学课件 作者 戴水贵 敖志刚 俞海英 编著 第10章 位运算.ppt
- C 语言程序设计实用教程 教学课件 作者 李庆亮 第1章 概 述.ppt
- AutoCAD2010中文版学习与实训教程 教学课件 作者 龙建明 1 15 第6章.ppt
- C 语言程序设计实用教程 教学课件 作者 李庆亮 第2章 数据类型、运算符和表达式.ppt
- C 语言程序设计实用教程 教学课件 作者 李庆亮 第3章 基本程序设计.ppt
- C 语言程序设计实用教程 教学课件 作者 李庆亮 第4章 数 组.ppt
- C 语言程序设计实用教程 教学课件 作者 李庆亮 第6章 函 数.ppt
- C 语言程序设计实用教程 教学课件 作者 李庆亮 第7章 常用基本算法的C语言实现.ppt
文档评论(0)