[理学]C华南农业大学c语言课件第7章.ppt

  1. 1、本文档共83页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]C华南农业大学c语言课件第7章

7.1 函数的基本概念 7.1.1 函数的概念 函数的定义: 将一个程序分为若干模块,每个模块实现一个特定的功能,在C语言中用函数来实现模块的功能。C程序由主函数和若干个函数构成。 说明: 1) C 语言是以源文件为单位进行编译的,一个源程序文件由一个或多个函数组成。 2) 一个C 程序由一个或多个源程序文件组成 。 3)在C语言中,程序总是从主函数开始执行,调用完其它函数后,最终在主函数中结束,而无论主函数在程序中的位置如何。 4)函数不可以嵌套定义,但可以相互调用。 ☆主函数(main( ))调用其它函数; ☆所有函数在定义时是并列; ☆在调用时是纵向; ☆可相互调用,也可被多次调用。 main: 主函数 e, d, h ,g 被多次调用 a, b, c,d, e, f,g, h, 相互调用 7.1.2 函数的定义 函数定义的一般形式: [类型说明符] 函数名(形式参数声明) { [说明与定义部分]; 函数体语句; } [例7-2] 编写函数,将一个给定的整数转换成相应的字符串后显示出来。 #include stdio.h to_str(int n) /*没有定义函数类型时默认为int类型*/ { /*如果没有返回值可定义为空类型void*/ char string[10]; int i=0; if(n0) {putchar(‘-); n=-n; } while(n0) { string[i++]=n%10+‘0’; /*%为求模, ‘0’的ACSII码为48*/ n/=10; /* 例178%10+‘0’=8+’0’=56=‘8’(因为8的ASCII码为56*/ } /*然后n=n/10,即:n=178/10=17, n%10+’0’=‘7’,然后 n=17/10=1,n%10+’0’=‘1’见书P93*/ while(--i=0) putchar(string[i]); } 说明: 1)???第一种调用格式是以语句的形式调用函数,一般用于调用无返回值的函数。 例如:to_str(6573); ? ?2)实际参数表列(简称实参表)中实参的类型及个数必须与形参相同,并且顺序一致,当有多个实参时,参数之间应用逗号隔开。 3)实参可以是常量、有确定值的变量或表达式及函数调用。 例如: to_stu(120); to_stu(20+a+b); cube(cube(x+y)); 4)在进行函数调用时,要求实参与形参个数相等,类型和顺序也一致。但在C的标准中,实参表的求值顺序并不是确定的。有的系统按照自右向左的顺序计算,而有的系统则相反。 7.1.4函数参数的传递方式 1.值传递 在函数调用时,实参将其值传递给形参,这种传递方式即为值传递。 在调用函数时,实参将值传递给形参。C语言规定,实参对形参的数据传递是“值传递”,即单向传递,只能由实参传递给形参,而不能由形参传回来给实参。因为在内存中,实参与形参占用不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍保留并维持原值。因此,在执行一个被调用函数时,形参的值如果发生变化,并不会改变主调函数中实参的值。 2.地址传递 地址传递指的是调用函数时,实参将某些量(如变量、字符串、数组等)的地址传递给形参。这样实参和形参指向同一个内存空间,在执行被调函数的过程中,对形参所指向空间中内容的变化,能够直接影响到调用函数中对应的量。 7.1.5 函数的返回值 定义 通过函数调用使主调函数得到一个确定的值, 称为函数的返回值。 例如: c=max(3, 5); 此时函数的返回值是5,因此c=5。 2 . 函数的返回值语句 return return语句的一般形式: return (表达式); 说明: 1) return语句有两重作用:即从函数中退出,返回到调用函数中并向调用函数返回一个确定的值。 2) 一个函数可以有一个以上的return语句 。 fun(int x) { if(x1) return 2*x+1; else if(x=0) return x* x; else

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档