欢迎来到天天文库
浏览记录
ID:43946350
大小:617.00 KB
页数:41页
时间:2019-10-17
《函数与数据控制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第5章函数与数据控制5.1函数定义与说明5.2数据控制5.3函数的顺序控制5.4相关的其他语法5.5常用系统函数学习目的:①掌握函数的定义与使用方法;②深入理解参数转递及变量作用域;③了解函数的顺序控制机制;④掌握函数指针概念及数组做函数参数。5.1函数定义与说明5.1.1函数定义5.1.2函数说明5.1.3函数的简单调用5.1.4函数的重载函数在程序设计中用来描述相对独立的功能,其中包含实现所述功能的一系列具体操作步骤。更复杂的功能通过调用一系列相对简单的函数来完成,这些简单函数的功能更加单一,结构更加简单易读。使用函
2、数的意义还在于,通过将函数头作为函数内部实现与外部调用环境之间的接口,实现了数据与程序代码的封装,隐藏了程序实现的细节问题,具有十分明显的模块化、参数化和结构化特征。函数的定义及使用包括三个方面的内容:函数定义、说明及调用。5.1.1函数定义函数由函数头、函数体两个部分组成,规则如下:参数表类型参数名空格;()函数头返回值类型函数名参数表函数函数头函数体函数体{}语句下面为函数定义示例,该函数的功能是返回两个浮点数的积:doubleGetProduct(doublex,doubley){doubletemp=x*y;re
3、turntemp;}5.1.2函数说明1函数原型函数在使用前必须进行定义,如果函数的调用不是位于同一个文件中函数定义之后,则必须在调用函数之前对函数进行引用说明。通常的做法是使用#include指令将含有函数引用说明的文件嵌入进来。C++中函数原型给出函数引用说明,任何函数都有自己的函数原型,它可能由编译器从一个函数定义中自动抽取,也可由程序员在程序中通过函数说明语句给出。函数原型的真正价值是使编译器能够按照所声明的形式进行类型检查,从而发现函数调用中可能存在的错误。形式上函数原型与函数头相似,但参数表中的参数名可与函数
4、定义中对应位置的参数名不同,也可省略,但类型必须相同。例如:voidSwap(int*pX,int*pY);与下述形式代表的是同一个函数原型voidSwap(int*,int*);5.1.2函数说明2函数参数默认值在函数说明中可以为函数的参数指定默认值。调用函数时如果没显式地指定参数的值,编译器就会使用相应的默认值,例如:intIncrease(inti=0);//调用时可写为Increase(),意指Increase(0)对参数指定默认值必须从参数表最右边的参数开始连续指定,不允许跨越一个参数而指定其左侧参数的默认值,
5、例如下述函数原型非法:voidMoveToPosition(intx=0,inty,intz=0);voidMoveToPosition(intx=0,inty=0,intz);而下述函数原型合法:voidMoveToPosition(intx,inty=0,intz=0);函数调用时,编译器将按从左至右的顺序将实参与形参结合,当实参数目少于形参数目时,将按顺序用默认值补足所缺少的实参,例如对于上面的函数说明,下面两种方式等价:MoveToPosition(3,8);MoveToPostion(3,8,0);5.1.2函
6、数说明3函数的返回值[例5.1]编写函数比较两个浮点数的大小,要求:当第一个浮点数比第二个大时返回1;相等时返回0;否则返回-1。函数内操作完成后,使用返回语句将某值传递给调用函数,格式为:return;程序运行至该语句时,计算的值并传递给调用函数,然后将程序执行的控制权移交给调用函数,执行紧跟当前函数调用语句后的语句。intFloatCmp(floatf1,floatf2){floatf=f1-f2;if(fabs(f)<0.0001)return0;elseif(f<-0.0001)return-
7、1;elsereturn1;}5.1.3函数的简单调用函数的使用方式很灵活,可以用作某个运算的操作数,也可以作为单独的一条语句出现在程序中,实际上作为一种表达式,函数调用几乎可以出现在程序中任何表达式能够出现的地方。在具体调用函数时,应该根据函数原型中对参数类型的要求用相应的实际数据替换函数的参数,例如下列程序段:#include"math.h"#include"iostream.h“intGetMinimum(intm,intn){returnm>n?n:m;}voidmain(){cout<8、inimum(64,81))<
8、inimum(64,81))<
此文档下载收益归作者所有