- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 函数 5.1函数的定义 5.2函数的调用 5.3数组作为函数参数 5.4局部变量与全局变量 5.5变量的存储类别 5.6内部函数和外部函数 5.1函数的定义 函数定义的一般形式 函数类型 函数名(类型 参数1,类型 参数2,…,类型 参数N) { 数据说明; 语句; } 5.1函数的定义 说明: 1)类型-:出现在函数名max前面的关键字int表示该函数的类型。从语法规则上讲,函数类型可以是基本数据类型,也可以是构造类型。但对一个具体函数的定义来说,它的类型是唯一的,并且通常与其返回值的类型一致。如果缺少类型说明,那么编译程序将认为该函数的类型是int型;如果不返回值,则定义为void类型。 2)函数名:给函数取的名字,以后通过这个名字调用函数。函数名称可以是C语言中任何合法的标识符。函数名后面一定要有一对圆括号(如果有参数,则它们放在圆括号之内),由它表示该标识符是函数名。通常,函数名要有意义,最好能代表其基本功能。在一个程序中,表示同一函数的名称应是唯一的。 3)参数表:指明参数的类型和名称。当参数多于一个时,则彼此间用逗号隔开。函数定义中的参数一般称为形式参数(简称形参)。利用形参可以实现函数之间的数据交换。如果没有形参,则标为void。 4)函数体:由一对花括号括起来,其中包含数据说明和语句。函数的功能就是由函数体内的各个语句实现的。 5.1函数的定义 2. 函数的参数和返回值 函数的参数分为形式参数(简称形参)和实在参数(简称实参)两种。形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。形参和实参的功能是作数据传送。发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送。 5.1函数的定义 3. 函数的返回值 当一个函数调用另一个函数时,不仅要求被调用函数完成特定的操作,还需要被调用函数能返回一个确定的值,如计算的结果、执行的状态、出错信息等,这就是函数的返回值,简称函数值。C语言中将函数分为带返回值的函数和不带返回值的函数两种。如果用户定义的函数需要返回函数值,必须在函数定义中明确指定返回值的数据类型。函数的返回值可以是各种类型。 如果一个函数无返回值,此类函数用于完成某项特定的处理任务,函数的任务完成后不向调用者返回结果,一般可以不写return语句。用户在定义此类函数时应指定它的返回值为“空类型”,空类型的类型说明符为“void”。 5.2函数的调用 1. 函数调用语法形式 C语言中,函数调用的一般形式为: 函数名(参数表达式1,参数表达式2,参数表达式n) 其中,参数表达式的个数与函数定义的个数、数据类型都应该匹配,如果不匹配可能会出现预料不到的结果。此时的参数叫实参。对无参函数调用时则无实参表。实参表中的参数可以是常数,变量或其它构造类型数据及表达式。各实参之间用逗号分隔。 5.2函数的调用 2. 函数调用方式 在C语言中,可以用以下几种方式调用函数: 1)函数表达式。函数作为表达式的一项,出现在表达式中,以函数返回值参与表达式的运算。这种方式要求函数是有返回值的。 2)函数语句。C语言中的函数可以只进行某些操作而不返回函数值,这时的函数调用可作为一条独立的语句。 3)函数实参。函数作为另一个函数调用的实参出现。这种情况是把该函数的返回值作为实参进行传送,因此要求该函数必须是有返回值的。 5.2函数的调用 3. 嵌套调用与递归调用 1)嵌套调用 C语言允许在一个函数的定义中出现对另一个函数的调用。这样就出现了函数的嵌套调用。即在被调函数中又调用其它函数。 2)递归调用 函数的递归调用就是在调用一个函数的过程中又直接或间接地调用了该函数本身。根据调用方式,递归调用又分为直接递归和间接递归两种。 5.3数组作为函数参数 数组可以作为函数的参数使用,进行数据传送。数组用作函数参数有两种形式,一种是把数组元素(下标变量)作为实参使用;另一种是把数组名作为函数的形参和实参使用 。 1.数组元素作函数实参 数组元素与普通变量并无区别, 因此它作为函数实参使用与普通变量是完全相同的,在发生函数调用时,把作为实参的数组元素的值传送给形参,实现单向的值传送。 5.3数组作为函数参数 2.数组名作为函数参数 用数组名作函数参数与用数组元素作实参有几点不同: (1) 用数组元素作实参时,只要数组类型和函数的形参变量的类型一致,那么作为下标变量的数组元素的类型也和函数形参变量的类型是一致的。因此,并不要求函数的形参也是下标变量。换句话说,对数组元素的处理是按普通变量对待的。用数组名作函数参数时,则要求形参和相对应的实参都必须是类型相同的数组,都必须有明确的数组说明。当形参和
您可能关注的文档
- C语言程序设计(第二版) 李丽娟 马淑萍主编 第8章_指针新.ppt
- C语言程序设计(第二版) 李丽娟 马淑萍主编 第10章_文件新.PPT
- C语言程序设计(第二版) 王宏志,韩志明主编 C语言程序设计1新.ppt
- C语言程序设计(第二版) 王宏志,韩志明主编 C语言程序设计4新.ppt
- C语言程序设计(第二版) 王宏志,韩志明主编 C语言程序设计5新.ppt
- C语言程序设计(第二版) 王宏志,韩志明主编 C语言程序设计6新.ppt
- C语言程序设计(第二版) 王宏志,韩志明主编 C语言程序设计7新.ppt
- C语言程序设计(第二版) 王宏志,韩志明主编 C语言程序设计8新.ppt
- C语言程序设计(第二版) 王宏志,韩志明主编 C语言程序设计10新.ppt
- C语言程序设计(第二版) 王宏志,韩志明主编 C语言程序设计11新.ppt
- C语言程序设计与数据结构 周成义 等 第8章新.ppt
- C语言程序设计与应用教程(第二版) 周虹 闫瑞峰 王永利主编 10394-C语言程序设计与应用教程(第二版)新.ppt
- C语言程序设计与应用教程(第二版) 周虹 闫瑞峰 王永利主编 第2章数据类型、运算符和表达式新.ppt
- C语言程序设计与应用教程(第二版) 周虹 闫瑞峰 王永利主编 第4章选择结构程序设计 新.ppt
- C语言程序设计与应用教程(第二版) 周虹 闫瑞峰 王永利主编 第6章数组 新.ppt
- C语言程序设计与应用教程(第二版) 周虹 闫瑞峰 王永利主编 第9章指针 新.ppt
- C语言程序设计与应用教程(第二版) 周虹 闫瑞峰 王永利主编 第10章结构体与共用体 新.ppt
- C语言程序设计与应用教程(第二版) 周虹 闫瑞峰 王永利主编 第11章位运算 新.ppt
- C语言程序设计(第二版) 林小茶 C_ch1新.ppt
- C语言程序设计(第二版) 林小茶 C_ch2新.ppt
文档评论(0)