第四章 函数

上传人:豆浆 文档编号:6456668 上传时间:2017-08-08 格式:PPT 页数:99 大小:1.68MB
返回 下载 相关 举报
第四章 函数_第1页
第1页 / 共99页
第四章 函数_第2页
第2页 / 共99页
第四章 函数_第3页
第3页 / 共99页
第四章 函数_第4页
第4页 / 共99页
第四章 函数_第5页
第5页 / 共99页
点击查看更多>>
资源描述

《第四章 函数》由会员分享,可在线阅读,更多相关《第四章 函数(99页珍藏版)》请在金锄头文库上搜索。

1、1/99,程序设计是计算机学科的,核心和灵魂,程序设计基础,第四章 函数,2/99,回忆函数,主函数:,int main() coutComputer Science.n;return 0;,库函数:,#include int main() float a,b,c,x1,x2; cinabc; x1=(-b+sqrt(b*b-4.*a*c)/(2*a); x2=(-b-sqrt(b*b-4.*a*c)/(2*a); coutx1 ab; c=max( a , b); cout=y? x : y ; return ( z) ;,主函数,函数体,函数的类型,返回值的类型,函数名(用标识符命名),引

2、用函数的标志,并得到结果。,函数参数说明表。,定义!,调用!,函数定义是要确定函数的名称、函数的类型、函数的参数及函数的功能。,int max(int x ,int y);,7/99,函数分类,(1)从用户角度标准函数(库函数):C+语言的集成开发环境提供,存放在库函数中,用户链接相应的库函数头文件后便可以直接使用。用户自定义函数:由用户按照逻辑功能自己编写的程序,(2)从函数形式无参函数:调用该函数时,主调函数不需函数要将数据传递给被调用函数,只执行指定的一组操作有参函数:主调需传递数据给被调函数,(3)从函数返回值角度:有返回值函数和无返回值函数,8/99,4.2函数的定义与调用,函数类型

3、 函数名(函数参数定义)说明部分(变量声明)语句部分 return 结果;,int max(int x ,int y) int z ; z=x=y? x : y ; return (z) ;,int max(int x,int y) int cx(int c,int d) /*Error !*/ ,函数定义不可以嵌套,一、函数定义的一般格式,9/99,1)函数类型: 函数返回值的类型。指数据类型,如:int ,float,double, bool,char, void 等等。如果函数没有返回值,应指明返回类型void。 如果函数类型省略,系统默认类型为int型。提倡显示指明函数类型,和变量命名

4、一样,是标识符函数名后一定要有一对圆括号( ),这是函数的标志,使函数与其他标识符名区分开来尽量要能够表达出正确的意义。函数名重在说明它要“做什么”。,2)函数名:,int max(int x ,int y) int z ; z=x=y? x : y ; return (z) ;,10/99,4)函数体函数体用一对包括。里面就是函数用以实现功能的代码。声明部分:用于声明在函数中使用到的变量语句部分:在函数中用于实现某项任务的语句序列空函数:函数体为空(没有语句,但 不能省略,int max(int x ,int y) int z ; z=x=y? x : y ; return (z) ;,11

5、/99,5)return 语句 return 语句只在函数内使用.它起到让函数停止运行,然后返回一个值的作用,并返回到函数调用程序的下一条语句。函数体里可以有多个return语句,也可以没有return 语句,或者写不带结果的return语句。return 返回的结果,类型一般和前面“返回类型”一致。如果不一致,系统自动将表达式类型转换为函数类型。,int max(int x ,int y) int z ; z=x=y? x : y ; return (z) ;,int max(int a, int b) if(a b) return a; return b;,12/99,6)函数的类型,re

6、turn,及如何获取函数的返回值,int max(int x ,int y),函数的类型:即函数返回值类型.,int max(int a,int b)return (ab)?a:b;,int max(float a,float b)return (ab)?a:b;,return 语句让函数停止运行, 返回一个值,int max(int a, int b) if(a b) return a; return b;,若函数是void类型时,return不能接返回值,return仅起结束函数的作用return后可接表达式、变量、常量、甚至也可以接一个函数调用表达式,获取函数的返回值,int c = m

7、ax(10,7),13/99,二、函数参数形式参数,函数形式参数的定义:,一般格式:(数据类型 变量1,数据类型 变量2,),多个参数之间用逗号隔开,而不是分号,且最后一个变量之后则不需要符号。两个或多个参数类型相同时,并不能同时声明int max(int x ,y) 用于接收从主调函数传给这个函数的数据形参个数不受限制,可以很多,也可以无,int max(int x ,int y) int z ; z=x=y? x : y ; return (z) ;,形式参数:函数在声明或定义时,所写出的参数定义。,14/99,形参只是形式上参数,所以在声明一个函数时,甚至可以不写形参的变量名:函数声明可

8、以写为:int max(int ,int );,在自定义函数中指定的形参变量,在未出现函数调用时,它们并不占用内存中的存储单元.只有在发生函数调用时形参才被分配内存单元.在调用结束后,所占用的存储单元被释放.,形参必须指定参数类型,二、函数参数形式参数,15/99,int max(x,y) int x,y;或int max(int x,y) ,或int max(x,y)int x,y,z; z = x y ? x : y; return( z );,形参也可以这样定义,但是不推荐,int max(x,y)int x,y; int z; z = x y ? x : y; return( z );

9、,二、函数参数形式参数,16/99,出现在函数调用表达式中,是函数调用时,实际使用的参数一般形式:(表达式1,表达式2,)实际参数表是用逗号分隔的表达式列表,其中每个表达式称为实际参数,简称为实参,可以是常量,变量或表达式函数调用时,需将实际参数的值传送给对应位置的形式参数实际参数与形式参数必须一一对应,位置、个数以及数据类型都匹配,二、函数参数实际参数,17/99,形式参数:定义函数时,函数名后()中的参数实际参数:调用函数时函数名后()中的表达式,int main(void ) int a,b,c; cin ab; c=max( a , b); cout=y? x : y ; return

10、 ( z) ;,实参,形参,二、函数参数形式参数与实际参数,int max(int x ,int y);,18/99,实参必须有确定的值实参可以是常量、变量、表达式、函数调用形参必须指定类型形参与实参类型一致,个数相同若形参与实参类型不一致,自动按形参类型转换函数调用转换形参在函数被调用前不占内存;函数调用时为形参分配内存;调用结束,内存释放,二、函数参数形式参数与实际参数,19/99,三、函数的调用,函数调用的一般形式:当作表达式使用函数名(实际参数表),如果是调用无参函数,则“实参表列”可以没有,但括弧不能省,函数调用的方式:一般调用方式有三种:语句形式: max(a,b); /*不要求函

11、数带回值*/表达式形式: c=max(a, b)*2; /*函数是表达式的一部分*/函数参数: c=max(a,max(b,d ); /*函数调用作为一个函数的实参*/,函数调用作为一个表达式,其类型是函数返回值的类型 函数调用可用于任何表达式可以出现的地方,在调用一函数的过程中,又调用另一函数C+允许函数的嵌套调用,不允许函数的嵌套定义,20/99,void main (void) int a ,b ,c ; cinab ; c=max( a ,b ); couty? x : y ; return (z) ;,先计算实参的值,从右向左(或者从左向右)向函数传递调赋值给形参。,2,3,ab,X

12、y,2,3,转移到函数中运行,执行到return语句,将返回表达式的值。由函数名带回给调用函数。,z,3,三、函数的调用,int max ( int x , int y );,21/99,函数调用的执行过程:1、程序在执行过程中一旦遇到一个函数调用,系统首先为每个形参分配一定数目的存储单元(存储单元的字节数由参数的类型决定);然后计算实参表达式的值,并将实参的值送到形参对应的存储单元中(实参与形参按位置对应);2、将执行的控制转移到被调用函数的第一个执行语句处开始执行,直到函数体末尾或遇到一个return语句为止;3、当执行到函数体末尾或执行return语句时,如果函数有返回值,则将控制返回到

13、调用点同时返回一个值,这个返回值就是函数调用表达式的值;否则只返回控制。控制返回到调用函数之后从函数调用点继续向后执行。,22/99,四、函数的声明(函数原型),函数使用必须遵循“先声明、后使用”原则,因为C+编译系统在编译时必须先知道该函数实现的形式(接口形式)。,在一个函数中调用另一个函数需要具备的条件.被调用的函数必须已经存在(库函数或用户自定义函数)若使用库函数,要在本文件开头用#include命令将调用有关库函数时所需用到的信息“包含”到本文件中来. #include 如果使用用户自定义函数,且该函数与调用它的函数(主调函数)在同一个文件中,则要在主调函数中对被调用的函数作声明.函数声明通过”函数原型”给出。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号