C语言程序设计教程 作者 宗大华 陈吉人 第6章.pptVIP

C语言程序设计教程 作者 宗大华 陈吉人 第6章.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 6 章 函 数 本章着重讲述4个方面的内容: (1)定义函数的方法。 (2)编写程序时,调用函数和被调函数的位置关系。 (3)调用函数和被调函数间数据传递的各种方式。 (4)程序中各个变量的作用域和生命期。 6.1 函数的概念 所谓“函数”,是程序中可以反复使用的一个程序段,其它函数可以通过调用语句来执行这段程序,完成所需要的工作。 C语言本身为用户提供了很多函数,这称为“系统函数”。程序设计者自己编写的函数,称为“用户函数”。 6.1.1 函数的定义 函数定义的一般格式是: 函数类型 函数名 (形式参数表) { 函数体 } 其中: (1)函数类型:是所定义函数在执行完后返回结果的数据类型,即返回值的类型。 (2)函数名:是所定义函数的名称,它可以是C语言中任何合法的标识符。 (3)形式参数表:形式参数表中列出的形式参数,简称“形参”。被调函数就是通过这些形参,接收从调用函数传递过来的数据。定义的函数可以有参数,也可以没有参数。如果定义的函数有形参,则称为“有参函数”,否则就是“无参函数”。 (4)函数体:函数体由一对花括号“{ }”括起,它由变量说明语句和执行语句序列组成。 6.1.2 函数的调用 根据一个函数是否有返回值,C语言将以不同的方式对它们进行调用。 (1)没有返回值的函数,是以函数调用语句的方式进行调用的。即: 函数名 (实际参数表); (2)有返回值的函数,是以函数表达式的方式调用的。即: 函数名 (实际参数表) 这两种调用方式根本的不同是:前者是一个语句,以分号结尾;后者是一个表达式,凡是一般表达式能够出现的地方,它都可以出现。 函数调用时给出的实际参数表中,必须列出与被调函数定义中所给形参个数相等、类型相符、次序相同的实参,各实参之间仍以逗号为分隔符。否则就会出现语法错误。 6.1.3 函数的原型说明 在函数中调用一个用户函数时,必须首先保证这个被调用的用户函数已经存在。如果放的位置颠倒了,若被调函数返回值的类型是int、char,那么不会产生什么影响;若被调函数返回值的类型是非int、非char,即返回值的类型是float、double或void等,那么编译时就会给出出错信息。 C语言提供了两种解决这个问题的办法,一是把被调用者与调用者的位置重新放正确;二是保持这种颠倒的位置关系,但在整个程序最前面或在调用函数里先对被调函数做一个说明,这就是所谓的“函数原型说明”。 函数原型说明的一般格式是: 函数类型 函数名 (形参类型表); 它类同于函数定义中的函数头,但有两点区别:一是函数定义中函数头里给出的是形式参数表,它由“类型 参数”对组成,函数原型说明里给出的是形参类型表,它只列出“类型”;二是函数原型说明要以分号为结尾,成为一条说明语句。 6.1.4 变量的作用域和生命期 1.全局变量、局部变量与变量的作用域 编写程序时,C语言允许在3个地方说明变量。 (1)在所有函数之外。这种变量称为“全局变量”,它可以被该程序中的所有函数使用。 (2)在某个函数(或复合语句)里面。这种变量称为“局部变量”,它只能在说明它的范围内使用。 (3)作为函数的形参。这类变量也是局部变量,其作用就是用于接收调用者传递过来的实参数据,出了函数,该变量就不能使用了。 在C语言中,称一个变量的作用范围为“变量的作用域”。由于每个变量都有自己的作用域,因此在不同函数内说明的局部变量就可以使用相同的变量名,类型也可以不一样。它们不会因为名字相同而互相干扰。C语言规定,在一个源程序文件中,当所说明的全局变量与某个函数内说明的局部变量同名时,那么在该局部变量的作用域,全局变量就不起作用。 2.自动变量、静态变量与变量的生命期 (1)在函数内说明一个变量(它当然是一个局部变量)时,若将其存储类型说成是auto,或没有给出它的存储类型,那么这个变量是自动型的。这时,只有在调用函数而遇到这种变量时,C语言才在动态存储区里为它们分配所需要的存储区,函数调用完毕,就立即收回它们占用的存储区。从这样的处理过程可以看出,每次调用函数,都必须重新为自动型变量分配存储区,重新进行初始化。 (2)在函数内说明一个变量(它当然是一个局部变量)时,若将其存储类型说成是static,那么这个变量是静态型的。对于静态变量,C语言是编译时在静态存储区里为它们分配所需要的存储区,即使函数调用完毕,也不收回分配给它的存储区,直至程序运行结束。如果程序中说明静态变量时对它做了初始化,那么这种初始化只做一次,下次再调用就只是沿用上次调用后的取值,不再初始化了。 在C语言中,称一个变量说明后它存在的时间区间为“变量的生命期”。对于自动变量,它只在其作用域里存在,出了作用域就不存在了。因此自动变量的生命期就是它的作用域;对于静

您可能关注的文档

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档