C课件第六章.ppt
文本预览下载声明
第6章自定义函数 §6.3、自定义函数 一、自定义函数的一般形式 定义函数的一般格式为: 函数值类型说明 函数名(参数说明表) { 函数体 } 其中: 第一行称为函数头 函数值类型说明:是指函数返回值的数据类型.如果某一函数不需要返回值,则函数值类型说明可选用void. 函数名:为一个标识符. 参数说明表格式为: 类型 参数1,类型 参数2,……,类型 参数n 用来说明完成函数功能所需的必要参数,这些参数在设计函数时经常还无具体值,因此这些参数也称为形式参数(形参)或虚拟参数. 此处定义的参数(变量)仅在本函数内有效. 函数体:本身是一个分程序,由语句和其他分程序组成。 分程序: { 说明语句部分 执行语句部分 } 函数体内可随时声明一个变量,但同一函数内不能重复声明同一变量。 函数返回值:函数的返回值也称函数值,返回的不是函数本身,而是一个值,是通过函数体内部的return语句提供。 return语句的格式为: return (表达式); return语句的功能是将表达式的值作为函数值返回,()可有可无。 return语句提供的函数值的类型应与函数声明中的函数值类型一致,否则会作类型的强制转换,如果数据类型不相容,则编译时会出错。 如: double add(double x,double y) { return x+y; } 又如: int fa(int n) //求n! { int j,y=1; for(j=1;j=n;j++) y=y*j; return y; } 按函数是否传递参数值及是否返回值,也可将其分类: (1)获取参数并返回值 int bigger(int a,int b) { return (ab)?a:b; } (2)不获取参数但返回值 double geti( ) { int x; cinx; return x; } (3)获取参数但不返回值 void delay(long a) { for(int j=1;j=a;j++; } (4)不获取参数也不返回值 void message( ) { coutThis is a message.\n } 无返回值的函数也可以使用return,但不能返回值。 void print( ) { for(int i=0;i60;i++) cout*; coutendl; return ; } C++不允许函数定义嵌套,即在函数定义中再定义一个函数是非法的。 如: void main( ) { void func( ) //非法 { …… } } 函数类型声明可以省略,此时: 若函数有返回值,则返回值强制为整型; 若函数无返回值(无return或return后不跟任何返回值),则此函数为void型。 #include iostream using namespace std; max(double x,double y) //int型返回值 { return x+y; } void main() { double x,y; cinxy; coutmax(x,y)endl; } //输入 3.5 4.4 输出 7 #include iostream using namespace std; max(double x,double y) //void型返回值 { double z=x+y; return; } void main() { double x,y; cinxy; coutmax(x,y)endl; }//输出内容错,未实现加法功能 二 、函数调用 在C++程序中,除了main()函数外,其它函数都不能独立地在程序中存在,任一函数的执行都是通过在main()函数中直接或间接地调用来执行,调用一个函数就是执行该函数的函数体的过程。 函数调用的一般形式为: 函数名(实参表) 实参表是调用函数时所提供的实在参数值,这些参数值可以是常量、已赋值的变量或可求值的表达式。 实参表中多于一个实参时,用逗号分开,它们的类型、个数和顺序应与函数的参数表中的参数个数和类型一一对应。 函数的调用既可以出现在表达式可出现的任何地方,也可以以函数调用语句(后加分号)的形式独立出现,调用后的结果是函数的返回值,其类型与定义函数时的函数值类型相同。 函数不允许
显示全部