资源描述:
《第8讲 函数的定义和调用.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第8讲函数的定义与调用一、C程序的模块化结构与函数定义二、函数的调用三、函数间的数据传送1、形参与实参、函数的返回值2、Void函数、函数原型3、数组作为函数的参数1、C程序的模块化结构结构化程序设计自顶向下,逐步细化;模块化设计。特点:程序结构清晰,易于维护,可重用性和可扩充性。一、概述(P70)2、模块化设计的方法将大程序分割成小函数。3、函数可以分为库函数和用户自定义函数,本节讨论自定义函数。[类型符]函数名称([形参表])[形参说明]{数据说明语句可执行语句}4、函数的定义(P74)函数头函数体floatsum(x,y)floatx,y;{intz;z=x+y;retu
2、rnz;}例如下面的函数定义:floatsum(floatx,floaty){intz;z=x+y;returnz;}也可以缩写成:函数定义格式的详细解释:floatsum(x,y)floatx,y;{intz;z=x+y;returnz;}类型说明符:函数的类型是指函数的返回值的类型,函数返回值所具有的数据类型的种类与变量相同。省略时则默认为int型。若明确表示函数不带回值,可以用void作类型符,称无类型或称空类型。函数定义格式的详细解释(续):floatsum(x,y)floatx,y;{intz;z=x+y;returnz;}函数名:通常是一个标识符,在一个程序中除
3、了主函数外其余函数的名字可以任意取,但不能与变量等其他标识符同名,最好能做到见名识义。一对圆括号是函数的标志。函数定义格式的详细解释(续):floatsum(x,y)floatx,y;{intz;z=x+y;returnz;}形参表(形式参数表):函数定义时的参数称为形式参数,形式参数彼此间用逗号分隔。形式参数省略时称无参函数,但此时函数名后的圆括号不能省。形参说明是用来指明各个形式参数的类型,它随形参的存在而存在。函数定义格式的详细解释(续):floatsum(x,y)floatx,y;{intz;z=x+y;returnz;}函数体:函数中最外层一对花括弧{···}括起来
4、的语句,它由若干个数据说明语句和可执行语句组成,决定函数要实现的功能、完成的任务。函数体内若无任何语句时,为空函数。函数定义格式的详细解释(续):floatsum(x,y)floatx,y;{intz;z=x+y;returnz;}函数返回值(结果):函数返回值是return后面的表达式。函数调用时,返回值通过return语句带回。return语句可以有多个,当执行某个return语句后,其后的语句不再执行。return后面的表达式应该尽量与函数类型相同,否则将自动转换。2、return语句返回函数的值(P75)当被调用函数在完成一定的功能后,可以将处理的结果通过return语句
5、带回到调用函数。return语句的作用:将表达式的值传给调用函数,并把控制权转向调用函数实现函数的返回,即结束被调用函数的执行,并将控制返回到调用它的函数。return语句的格式:return表达式;或者return(表达式);关于函数返回值的类型(P75)函数返回值的类型以说明为准。例 写出下面程序的执行结果。#includeintadd(floata,floatb){floatsum;sum=a+b;returnsum;}voidmain(){floatx,y,z;x=4.5;y=4.3;z=add(x,y);printf(“z=%f”,z);}执行结果
6、为:8例编写自定义函数。计算:分析:1)形参:求c要用到f,设形参为f,设为实型。2)返回值:返回值即为c,设为实型。函数定义如下:floatf_to_c(f)floatf;{floatc;c=5.0/9*(f–32);returnc;}例编写一个自定义函数求n!分析:1)形参:求n!要用到n,设形参为n,整型。2)返回值:设返回值为s,设为整型。函数定义如下:intjiechen(intn){inti,s=1;for(i=1;i<=n;i++)s*=i;returns;}二、函数的调用(P76)1、函数调用的一般格式函数名([实参列表]);说明:实参与形参的个数相等、类型相
7、同、顺序一致,呈一一对应的关系。实参应有确定的值。2、函数调用的两种形式:1)作为语句形式例如:printf("%d",x);2)作为表达式形式例如:c=abs(-6);实参(实际参数、实际参数)是函数调用时调用函数传送给被调用函数参数的实际值。实参可以是常量、变量和表达式三种形式,实参必须有确定的值。而形参是函数定义时,形式参数表中的参数。形参只能是变量。三、函数的参数传递(P78)1、形参与实参例如:fabs(-2)中的2,为常量形式putchar(c)中的c,为变量形式sq