第7章 函数调用(1).pptVIP

  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文档。上传文档
查看更多
第7章 函 数 调 用 C语言是通过函数来实现模块化程序设计的。所以较大的C语言应用程序,往往是由多个函数组成的,每个函数分别对应各自的功能模块。 7.1 概述 7.2 函数的定义与调用 7.3 函数的嵌套调用与递归调用 7.4 数组作为函数参数 7.1 概述 函数分类 1.库函数和用户定义函数 2.有返回值函数和无返回值函数 3 无参函数和有参函数 7.2 函数的定义与调用 7.2.1 函数的定义 7.2.2 函数的返回值与函数类型 7.2.3 函数的形参与实参 7.2.4 对被调用函数的说明和函数原型 7.2.5 函数的调用 7.2.1 函数的定义 1.任何函数(包括主函数main())都是由函数说明和函数体两部分组成。根据函数是否需要参数,可将函数分为无参函数和有参函数两种。 (1)无参函数的一般形式 函数类型 函数名( void ) { 说明语句部分; 可执行语句部分; } 注意:在旧标准中,函数可以缺省参数表。但在新标准中,函数不可缺省参数表;如果不需要参数,则用“void”表示,主函数main()例外。 对被调用函数的说明和函数原型 在ANSI C新标准中,采用函数原型方式,对被调用函数进行说明,其一般格式如下: 函数类型 函数名(数据类型[参数名][, 数据类型[参数名2]…]); C语言同时又规定,在以下2种情况下,可以省去对被调用函数的说明: 7.2.2 函数的返回值与函数类型 C语言的函数兼有其它语言中的函数和过程两种功能,从这个角度看,又可把函数分为有返回值函数和无返回值函数两种。 1.函数返回值与return语句 有参函数的返回值,是通过函数中的return语句来获得的。 (1)return语句的一般格式: return ( 返回值表达式 ); (2)return语句的功能:返回调用函数,并将“返回值表达式”的值带给调用函数。 注意:调用函数中无return语句,并不是不返回一个值,而是一个不确定的值。为了明确表示不返回值,可以用“void”定义成“无(空)类型”。 7.2.3 函数的形参与实参 函数的参数分为形参和实参两种,作用是实现数据传送。 形参出现在函数定义中,只能在该函数体内使用。发生函数调用时,调用函数把实参的值复制一份,传送给被调用函数的形参,从而实现调用函数向被调用函数的数据传送。 (1)实参可以是常量、变量、表达式、函数等。无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。 因此,应预先用赋值、输入等办法,使实参获得确定的值。 (2)形参变量只有在被调用时,才分配内存单元;调用结束时,即刻释放所分配的内存单元。 因此,形参只有在该函数内有效。调用结束,返回调用函数后,则不能再使用该形参变量。 (3)实参对形参的数据传送是单向的,即只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。 (4)实参和形参占用不同的内存单元,即使同名也互不影响。 习题1:已有变量定义和函数调用语句int a,b; b=sum(a); 函数sum()用以求 , 和数作为函数值返回.若a的值为10,经函数sum的计算后,b的值是55.请编写sum函数. int sum(int n) { int i,k=0; for(i=0;i=n;i++) k+=i; return k; } 7.2.5 函数的调用 函数调用的一般形式为: 函数名([实际参数表]) 函数的调用过程 函数调用过程是使函数得到执行的过程,有以下步骤: (1)根据函数名找到被调函数,若没找到,系统将报告出错信息。 (2)计算实际参数的值。 (3)将实际参数的值传递给形式参数。 (4)中断在主调函数中的执行,转到被调函数的函数体中开始执行。 (5)遇到return语句或函数结束的花括号时,返回主调函数。 (6)从主调函数的中断处继续执行。 实参的个数、类型和顺序,应该与被调用函数所要求的参数个数、类型和顺序一致,才能正确地进行数据传递。 7.3 函数的嵌套调用和递归调用 7.3.1 函数的嵌套调用 函数的嵌套调用是指,在执行被调用函数时,被调用函数又调用了其它函数。这与其它语言的子程序嵌套调用的情形是类似的,其关系可表示如图7-1。 [案例7.6] 计算s=(2*2)!+(3*3)!。 [案例7.6_1] 计算s=(2*2)!+(3*3)!。 [案例7.7] 计算s=1k+2k+3k+……+N k long f2(int n,int k) /*计算1到n的k

文档评论(0)

wxc6688 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档