- 1、本文档共38页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.1 函数概念 3.“ 空函数 ” ? 形参变量在被调用前不占用存储单元;在被调用结束后,形参所占存储单元亦被释放。 ? 实参可以是常量、变量或表达式。 ? 必须指定形参类型,且必须与实参的类型一致。 ? 实参对形参的数据传递是“值传递”。即单向传递,不能逆传。 ? 可以在形参表中直接说明形参类型。如: int max(int x, int y); float fun(int a[10], int n); ? 函数的返回值是通过return语句获得的。当不需返回函数值时,可省去return语句。 ? return语句的后面可以有括号,也可以没有。如: return z ; ? return(z); ? return语句的后面可以是变量,也可以是表达式。如: return(x y ? x : y); ? return语句返回值的类型应与该函数的类型一致。否则以函数类型为准。 1.函数调用的一般形式 函数名(实参表); 说明: ? 对于无参函数,尽管没有“实参表”,但也不得省略括号。 ? “实参表”中的参数之间用逗号分开。 ? 实参与形参之间的个数及类型必须一一对应。 ? 对实参求值的顺序是自左至右还是自右至左, 视具体的系统而定。Turbo C 和 MS C 是按自右至左的顺序求值。 调用函数,可以有如下三种方式: ? 将函数调用作为一个语句。如: printf(“MS C pragramming”); gets(s); ? 将被调用的函数写在表达式中。如: c=2?max(a, b); 注意:被调用函数max必须有确定的返回值。 ? 将函数调用作为一个函数的实参。如: m=max(max(a, b), c); 3.对被调用函数的说明 在一个函数中调用另一个函数时: ? 如果被调函数为库函数,则应在文件开头用“#include”命令声明相应的“头文件”。如: #include “stdio.h” #include “math.h” 类型标识符 被调函数名( ); 如:float add( ); ? 如果被调函数为自定义函数且其定义在主调函数定义之前,则在主调函数中可不必声明其类型。因为编译程序已知道其类型。 ? 如果被调函数的值是整型或字符型,可不必声明类型,系统自动按整型说明。 ? 如果在所有被调函数定义之前、在文件的开头、在函数的外部已对被调函数作了类型说明,则在各主调函数中可不必说明其类型。如: char letter( ); float f( ); int i( );? main( ) {……} /? 不必说明它所调用的函数的类型 ?/ C 语言函数的定义都是相互平行、独立的,不能嵌套定义。但可以嵌套调用函数。所谓函数的嵌套调用就是在被调用的函数中又调用另外的函数。 6.6 函数的递归调用 在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。 例6.4 有5人排成一队,从最后一人开始,其年龄均比前面的人大2岁,而最前面的人年龄是10岁,问最后一人的年龄是多少岁? 1.局部变量 在一个函数内部定义的变量,只能在本函数内使用和有效,称为“局部变量”。 ?主函数main中定义的变量,也只能在主函数内使用和有效。 ?不同函数中可以使用相同名字的变量,且互不干扰。 ?形式参数也是局部变量,也只能在所在函数内使用和有效。 ?可以在一个函数内的复合语句中定义变量,且这些变量只在本复合语句中有效。 这种复合语句也称为“分程序”或“子模块”。 2.全局变量 在函数(包括main函数)外定义的变量为外部变量,称为“全局变量”。全局变量的有效范围为从定义变量的位置开始到本源文件结束。 ? 如无必要,不要使用全局变量。因为全局变量既降低程序的清晰性和函数的通用性,且又在程序的全部执行过程中都占用存储空间。 ? 在文件开头定义的外部变量才可在整个文件范围内使用,若在定义点之前的函数需引用外部变量,则可用关键字“extern”作“外部变量说明”。 注意:外部变量定义和外部变量说明并不是同一回事。外部变量的定义只能有一次,它的位置在所有函数之外。而同一程序中的外部变量说明可以有多次,它的位置在函数之内(哪个函数要用就在哪个函数中说明)。系统根据外部变量的定义(而不是根据外部变量的说明)分配存储单元。对外部变量的初始化只能在“定义”时进行,“extern”只是申明该变量是一个已在外部定义过的变量而已。 ? 如果在同一源文件中,外部变量与局部变量同名,则在局部变量的作用范围内,外部变量不
您可能关注的文档
- abstract class与interface有什么区别.doc
- access笔试题(6篇 数据访问页).doc
- ACCESS常用的窗体查询方法和实例.doc
- 模糊数学2008-8(等价关系及相似关系).ppt
- 模糊数学原理和应用 第一章 概论.pdf
- C_程序设计和应用教程(WHUT课件)_第9章_数据库操作.ppt
- C_函数的参数传递与返回值问题的教学研讨.pdf
- 模糊数学在研究交通及经济发展的关系中的应用初探.pdf
- 模糊数学在游戏奖励设置中应用.pdf
- CG第8节电子教案.ppt
- [中央]2023年中国电子学会招聘应届生笔试历年参考题库附带答案详解.docx
- [吉安]2023年江西吉安市青原区总工会招聘协理员笔试历年参考题库附带答案详解.docx
- [中央]中华预防医学会科普信息部工作人员招聘笔试历年参考题库附带答案详解.docx
- [保定]河北保定市第二医院招聘工作人员49人笔试历年参考题库附带答案详解.docx
- [南通]江苏南通市崇川区人民法院招聘专职人民调解员10人笔试历年参考题库附带答案详解.docx
- [厦门]2023年福建厦门市机关事务管理局非在编工作人员招聘笔试历年参考题库附带答案详解.docx
- [三明]2023年福建三明市尤溪县招聘小学幼儿园新任教师79人笔试历年参考题库附带答案详解.docx
- [哈尔滨]2023年黑龙江哈尔滨市木兰县调配事业单位工作人员笔试历年参考题库附带答案详解.docx
- [上海]2023年上海市气象局所属事业单位招聘笔试历年参考题库附带答案详解.docx
- [台州]2023年浙江台州椒江区招聘中小学教师40人笔试历年参考题库附带答案详解.docx
文档评论(0)