欢迎来到天天文库
浏览记录
ID:50336545
大小:121.50 KB
页数:40页
时间:2020-03-08
《程序设计基础——C++ 教学课件 作者 刘玉英 第4讲 函数.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第四章函数函数的声明与调用参数传递方式标识符的作用域变量的生存期递归程序设计C++语言常用库函数4.1函数的定义与调用函数的定义函数声明:定义函数的名字、执行的语句序列、传递和使用的数据参数、返回值等;函数的调用函数调用:指明函数去“做什么”;函数调用的控制流程:如右图函数调用程序(主调函数)调用F调用F被调用函数F案例1求两个数的最大值#includefloatmax(floatx,floaty){floatz;//求两个数的最大值if(x>=y)z=x;elsez=y;returnz;}voidmain(){floati,j,k;floatte
2、mp;//临时最大者cout<<"Input3numbersplease:";cin>>i>>j>>k;//输入三个数temp=max(i,j);//main()是主调函数,max(…)是被调函数temp=max(temp,k);//找出最大数存放在temp中cout<<"Themaximumnumberis"<3、开发环境提供,存放在库(Library)函数中,用户在链接相应的库函数头文件后便可以直接使用。用户自定义的函数从函数的形式看:无参函数:调用该函数时,主调函数不需函数要将数据传递给被调用函数,只执行指定的一组操作有参函数:主调需传递数据给被调函数4.1.1函数声明函数声明(函数的定义性声明)函数类型函数名(形式参数表){说明部分(变量声明)语句部分}函数类型指函数返回值的数据类型,由return语句获得:floatmax(floatx,floaty){returnx>y?x:y;}若函数定义时没有说明函数类型,则缺省认为函数返回类型是intmain(){……}若函数无返回4、值,则应明确定义函数类型为voidvoidhandle(){……}函数名是标识符函数名后一定要有一对圆括号(),这是函数的标志,使函数与其他标识符名区分开来形式参数用于接收从主调函数传给这个函数的数据一般形式:(数据类型变量1,数据类型变量2,……)形参个数不受限制函数体声明部分:用于声明在函数中使用到的变量语句部分:在函数中用于实现某项任务的语句序列空函数:函数体为空(没有语句,但{}不能省略)4.1.2函数调用函数调用的一般形式:当作表达式使用函数名(实际参数表)实际参数出现在函数调用表达式中,是函数调用时,实际使用的参数一般形式:(表达式1,表达式2,……)实际参数5、表是用逗号分隔的表达式列表,其中每一个表达式称为实际参数,有时也简称为实参。在函数调用时,需要将实际参数的值传送给对应位置的形式参数实际参数与形式参数必须一一对应,位置、个数以及数据类型都匹配2.函数调用表达式函数调用作为一个表达式,其类型是函数返回值的类型函数调用可用于任何表达式可以出现的地方例1:if(max(i,j)6、译时必须先知道该函数实现的形式(接口形式)。对于用户自定义函数如果被调用函数的定义位于主调函数的后面,则必须在调用函数表达式之前对被调用函数做引用性声明函数的定义性声明:完整的、独立的函数单位,包括函数类型、函数名、形参及其类型,并且具有完整的函数体;函数的引用性声明(函数原型):无函数体部分,一般形式:函数定义的首部;函数原型必须与函数定义保持一致案例2函数的原形声明#includeintmain(){floati,j,k;floattemp;cout<<"Input3numbersplease:";cin>>i>>j>>k;temp=max(i7、,j);temp=max(temp,k);cout<<"Themaximumnumberis"<=y)z=x;elsez=y;returnz;}floatmax(floatx,floaty);//函数原形函数原型:floatmax(floatx,floaty);floatmax(float,float);floatmax(floatt,floatk);4.2函数的参数传递参数传递称为“实虚结合”,即实参向形参传递信
3、开发环境提供,存放在库(Library)函数中,用户在链接相应的库函数头文件后便可以直接使用。用户自定义的函数从函数的形式看:无参函数:调用该函数时,主调函数不需函数要将数据传递给被调用函数,只执行指定的一组操作有参函数:主调需传递数据给被调函数4.1.1函数声明函数声明(函数的定义性声明)函数类型函数名(形式参数表){说明部分(变量声明)语句部分}函数类型指函数返回值的数据类型,由return语句获得:floatmax(floatx,floaty){returnx>y?x:y;}若函数定义时没有说明函数类型,则缺省认为函数返回类型是intmain(){……}若函数无返回
4、值,则应明确定义函数类型为voidvoidhandle(){……}函数名是标识符函数名后一定要有一对圆括号(),这是函数的标志,使函数与其他标识符名区分开来形式参数用于接收从主调函数传给这个函数的数据一般形式:(数据类型变量1,数据类型变量2,……)形参个数不受限制函数体声明部分:用于声明在函数中使用到的变量语句部分:在函数中用于实现某项任务的语句序列空函数:函数体为空(没有语句,但{}不能省略)4.1.2函数调用函数调用的一般形式:当作表达式使用函数名(实际参数表)实际参数出现在函数调用表达式中,是函数调用时,实际使用的参数一般形式:(表达式1,表达式2,……)实际参数
5、表是用逗号分隔的表达式列表,其中每一个表达式称为实际参数,有时也简称为实参。在函数调用时,需要将实际参数的值传送给对应位置的形式参数实际参数与形式参数必须一一对应,位置、个数以及数据类型都匹配2.函数调用表达式函数调用作为一个表达式,其类型是函数返回值的类型函数调用可用于任何表达式可以出现的地方例1:if(max(i,j)6、译时必须先知道该函数实现的形式(接口形式)。对于用户自定义函数如果被调用函数的定义位于主调函数的后面,则必须在调用函数表达式之前对被调用函数做引用性声明函数的定义性声明:完整的、独立的函数单位,包括函数类型、函数名、形参及其类型,并且具有完整的函数体;函数的引用性声明(函数原型):无函数体部分,一般形式:函数定义的首部;函数原型必须与函数定义保持一致案例2函数的原形声明#includeintmain(){floati,j,k;floattemp;cout<<"Input3numbersplease:";cin>>i>>j>>k;temp=max(i7、,j);temp=max(temp,k);cout<<"Themaximumnumberis"<=y)z=x;elsez=y;returnz;}floatmax(floatx,floaty);//函数原形函数原型:floatmax(floatx,floaty);floatmax(float,float);floatmax(floatt,floatk);4.2函数的参数传递参数传递称为“实虚结合”,即实参向形参传递信
6、译时必须先知道该函数实现的形式(接口形式)。对于用户自定义函数如果被调用函数的定义位于主调函数的后面,则必须在调用函数表达式之前对被调用函数做引用性声明函数的定义性声明:完整的、独立的函数单位,包括函数类型、函数名、形参及其类型,并且具有完整的函数体;函数的引用性声明(函数原型):无函数体部分,一般形式:函数定义的首部;函数原型必须与函数定义保持一致案例2函数的原形声明#includeintmain(){floati,j,k;floattemp;cout<<"Input3numbersplease:";cin>>i>>j>>k;temp=max(i
7、,j);temp=max(temp,k);cout<<"Themaximumnumberis"<=y)z=x;elsez=y;returnz;}floatmax(floatx,floaty);//函数原形函数原型:floatmax(floatx,floaty);floatmax(float,float);floatmax(floatt,floatk);4.2函数的参数传递参数传递称为“实虚结合”,即实参向形参传递信
此文档下载收益归作者所有