c语言课件第7章1.ppt

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

第七章函数 结构化程序设计: 一个应用程序可根据其功能划分为若干个小模块来处理,每个小模块可编制成一个函数 * C程序是由一个主函数main()和若干个辅函数组成。程序总是从main函数开始执行,其它函数则是通过main函数中的语句直接或间接地调用来执行。 编译单位是源程序文件,不是函数 一个函数的代码是属该函数专有的,对程序的其它部分是隐藏的 函数平行,不能嵌套定义 函数可相互调用,主函数不能被调用 函数可以有/无参数 一、函数的特点 无参函数: 类型标识符 函数名( ) {说明部分 语句 返回语句 } 有参函数 类型标识符 函数名( 形式参数表列) 形式参数说明 /*它应在体外说明,也可在形参表中直接说 明形参类型.如:int max(int a,int b)*/ {说明部分 语句 返回语句} 二、函数定义的一般形式: 函数体 函数体 函数名: 是一个标识符。函数名后必须跟一对园括号。 参数及参数说明 函数之间的通信可通过参数表中的各个参数传递信息。无参数时,参数表部分可缺省。一个以上参数时,参数之间必须用“,”分隔。 函数体 必须用一对花括号括起来。 函数的返回类型 函数的返回值是通过函数中的return语句获得的。如果不需要返回值,可以不用return语句。返回值的类型与定义函数时的类型一致。 说明: (1)return; 无返回值 (2)return(表达式); 返回表达式值 (3)若明确不返回值,可用void 类型(无类型)定义函数 例7.1 main ( ) { int a,b,c; scanf(“%d,%d”,a,b); c=max(a,b);printf(“max=%d\n”,c);} max(x,y) int x,y; { int z; z=xy?x:y; return(z); } 形参实际上提供一种替换手段。 实参就是函数调用语句中的实际数据。它可以变量、常量及运算表达式。 实参和形参类型要一致(整型和字符可通用) 只能实参值传给形参,形参值不能传给实参(值传递) 不说明函数类型视为整型 return语句中的表达式的类型与函数类型不同时,以函数类型为准;表达式外的括号可省 一个函数体中允许多个return语句 无类型(void)函数表明不带回函数值 一个函数的代码是属该函数专有的,对程序的其它部分是隐藏的。除调用这个函数的语句之外,任何其它函数中的任何语句都不能访问这些代码(如goto语句跳转到另一个函数内部是不可能的)。 在函数内部定义的变量称为局部变量。局部变量随着函数的运行而生成,随着函数的退出而消亡。除存储类别为static时例外。 C语言中的所有函数的作用域都处在同一级别上。因此,把一个函数定义在另一个函数内部是不可能的。 三、函数的作用域 实参求值一般自右至左 调用形式:作为函数语句或函数表达式 在主调函数中一般要对被调函数予以说明: 形式: 类型 被调函数名 ( ); 例7.2 main ( )/*被调函数是整,字符型;在此前定义可不加如下说明*/ {float add( ); float a,b,c; scanf(“%f,%f”,a,b); c=add(a,b); 四、函数的调用 函数调用的一般形式 函数名(实参表列) printf(“sum=%f”,c);} float add(x,y) float x,y; { float z; z=x+y;return(z);} 在文件开头,函数的外部对被调函数作了说明,则在各主调函数中都不必说明被调函数 实参与形参的个数应相等、类型一致,顺序对应。 形参:实际上是提供了一种替换手段。局部变量 实参:函数调用语句中,用来代替形参的数据。 实参可以是变量、常量、运算表达式 函数参数的传递方式有两种: (1) 值传递 (2)地址传递 五、形参和实参 各函数之间的数据通信是通过实参和形参结合来传递信息的 例:分析下列程序 void swap1(int x,int y) { int temp; temp=x;x=y; y=temp; printf(x=%d,y=%d\n,x,y); } main() {int a=5,b=9; swap1(a,b); printf(a=%d,b=%d\n,a,b); } 结果: x=9, y=5 a=5, b=9 1.函数的传值调用 swap1( )函数的形参值的改变,对实参a和b没有影响。 将实参的临时复制值传给被调函数相应的形参,被调函数使用、修改这个复制值,不会影响实参的值。 单向传递 main函数

文档评论(0)

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

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

1亿VIP精品文档

相关文档