C语言程序设计5-模块化函数-Bppt课件.ppt

C语言程序设计5-模块化函数-Bppt课件.ppt

ID:59421594

大小:662.50 KB

页数:42页

时间:2020-09-19

C语言程序设计5-模块化函数-Bppt课件.ppt_第1页
C语言程序设计5-模块化函数-Bppt课件.ppt_第2页
C语言程序设计5-模块化函数-Bppt课件.ppt_第3页
C语言程序设计5-模块化函数-Bppt课件.ppt_第4页
C语言程序设计5-模块化函数-Bppt课件.ppt_第5页
资源描述:

《C语言程序设计5-模块化函数-Bppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、(四)模块化的函数设计4.1模块化函数设计思想4.2函数定义及使用4.3函数的参数传递4.4数组作为函数参数4.5函数的复杂调用4.6全局变量与局部变量4.7变量和函数的存储类别4.8编译预处理函数的定义及使用一、函数的定义数据类型函数名(形参定义){说明部分语句部分}1、定义:1、“数据类型”可以是简单类型、构造类型等。2、“说明部分”指的是变量的说明或调用函数的说明。3、“语句部分”,即可执行语句。注意:C语言中“说明部分”与“语句部分”不能交叉。4、“形参定义”中的形参是一些变量,这些变量必须单独定义。如:in

2、tx,inty,floatz…,不能简写为intx,y,longz…!2、函数定义的进一步说明1.函数的数据类型可以是void,涵义为“空类型”,没有具体返回值。2.如果函数不是void型,则函数有具体返回值,可以用return语句把某个表达式的值传给(赋给)调用的该函数名。格式为:return表达式;或return(表达式);3.return后的表达式的类型必须与函数名前的数据类型相同(类型一致)。4.函数的定义头部(即第一行)不能加分号“;”。二、函数的使用自定义函数的使用与标准函数的使用是一样的。用法如下:函数

3、名(实际参数列表)函数名(实际参数列表);或用在表达式中用作程序语句注意:(1)类型为void型的函数只能用作语句,而不能用在表达式中。(2)除了类型为void型或结构体型的函数外,其它函数都可以作表达式或语句使用。(3)实际参数可以是:变量、常量、表达式、函数等。函数调用的简单规则如果在函数A中使用函数B,则称:函数A为主调用函数,函数B为被调用函数。函数调用过程的规则是:1.函数必须先定义后才能使用。即被调用函数应该在主调用函数之前定义,或者先说明后定义。2.函数定义和说明(声明)不同,后者又称函数原型声明,使

4、编译阶段能对调用函数的合法性进行全面检查。3.在使用函数时,实际参数与形式参数的个数必须相同,并且对应的数据类型必须相同。(个数、顺序、类型)4.若函数定义前调用函数,则函数说明是必须的,函数原型声明的方法与变量定义类似,但可以省略形参名。函数的参数传递:变量作为函数参数参数是函数调用时进行数据交换的载体,参数包括实际参数(实参)和形式参数(形参)。实参是调用函数中的变量,形参是被调函数中的变量;调用过程中实现实参与形参的结合。函数的参数传递指的是把实参传递给形参的过程。所谓值传递,指的是主调函数把实参的值传给形参后

5、,实参与形参的联系即告终止,称为“单向值传递”。在前面对add函数使用的传递情况如下:xy形参实参ii+yz=add(i,i+y);intadd(intx,inty)3010函数传值调用的说明特点:(1)形参与实参各占一个独立的存储空间;(2)形参的存储空间是函数被调用时才临时分配的;(3)函数返回时,形参的临时存储区也被释放。总结:函数中对形参变量的操作不会影响到调用函数中的实参变量,即形参值不能传回给实参。传值方式:函数只有一个入口-实参传值给形参,函数只有一个出口-函数返回值。注意:函数的形参是在进入到函数内部

6、时才自动建立,当执行完函数后,形参会自动释放(消除)。因此,形参的变化不会影响实参。1、将数组元素作为参数:(1)和变量作为参数的用法相同;(2)这种传送方式仍然是“值传送”方式,即只能从实参传给形参,而不能从形参传给实参。2、将数组名作为函数参数:(1)实参数组和形参数组应分别在它们所在函数中定义;(2)以数组名作参数时,采取的不是“值传送”方式,而是“地址传送”方式,传送的是“地址值”。(3)以数组名作参数时,实参数组必须定义为具有确定长度的数组,而形参数组可以不定义长度。函数的参数传递:数组作为函数参数由于数组

7、名是一个“地址常量”值,因此可以把数组名或某个数组元素的地址赋给作为实参赋给相应形参。同时,由于数组作为形参时,定义的数组元素个数并无实际意义,因此在形参定义中可省略形参表示数组元素个数,但是二维数组的列数不能省略。(a)一维数组作为形参如:getarr(intarr[20])getarr(intarr[])//下标可省!或:getarr(intarr[],intn)(b)二维数组作为形参如:getarr(intarr[5][5])outarr(intarr[][5])//行下标可省,列下标不可省!voidmain(

8、)a()b(intx)c()d()e(){○1….a();○2….}{○3….d=b(5)+10;○4….}{○5….e=c();○6….}{○7….d();○8….}{○9….e();○10….}{○11….○12….}程序的执行过程如下:135791112108642函数嵌套调用C语言不能嵌套定义,但可以嵌套调用,即在

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。