C课件第六章.ppt第6章自定义函数§、自定义函数一、自定义函数的一般形式定义函数的一般格式为: 函数值类型说明函数名(参数说明表) { 函数体} 其中: 第一行称为函数头Date1函数值类型说明:,则函数值类型说明可选用void. 函数名:为一个标识符. 参数说明表格式为: 类型参数1,类型参数2,……,类型参数n 用来说明完成函数功能所需的必要参数,这些参数在设计函数时经常还无具体值,因此这些参数也称为形式参数(形参)或虚拟参数. 此处定义的参数(变量):本身是一个分程序,由语句和其他分程序组成。分程序: { 说明语句部分执行语句部分} 函数体内可随时声明一个变量,但同一函数内不能重复声明同一变量。Date3函数返回值:函数的返回值也称函数值,返回的不是函数本身,而是一个值,是通过函数体内部的return语句提供。 return语句的格式为: return(表达式); return语句的功能是将表达式的值作为函数值返回,()可有可无。 return语句提供的函数值的类型应与函数声明中的函数值类型一致,否则会作类型的强制转换,如果数据类型不相容,则编译时会出错。Date4如: doubleadd(doublex,doubley) { returnx+y; } 又如: intfa(intn) //求n! { intj,y=1; for(j=1;j<=n;j++) y=y*j; returny; }Date5按函数是否传递参数值及是否返回值,也可将其分类: (1)获取参数并返回值 intbigger(inta,intb) { return(a>b)?a:b; } (2)不获取参数但返回值 doublegeti() { intx; cin>>x; returnx; }Date6(3)获取参数但不返回值 voiddelay(longa) { for(intj=1;j<=a;j++; } (4)不获取参数也不返回值 voidmessage() { cout<<"Thisisamessage.\n" } 无返回值的函数也可以使用return,但不能返回值。 voidprint() { for(inti=0;i<60;i++) cout<<'*'; cout<<endl; return; }Date7C++不允许函数定义嵌套,即在函数定义中再定义一个函数是非法的。如: voidmain() { voidfunc() //非法{ ……} }Date8函数类型声明可以省略,此时: 若函数有返回值,则返回值强制为整型; 若函数无返回值(无return或return后不跟任何返回值),则此函数为void型。 #include<iostream> usingnamespacestd; max(doublex,doubley) //int型返回值 { returnx+y; } voidmain() { doublex,y; cin>>x>>y; cout<<max(x,y)<<endl; } // 输出 7Date9#include<iostream>usingnamespacestd;max(doublex,doubley)//void型返回值{ doublez=x+y; return;}voidmain(){ doublex,y; cin>>x>>y; cout<<max(x,y)<<endl;}//输出内容错,未实现加法功能Date10
C课件第六章 来自淘豆网m.daumloan.com转载请标明出处.