文档详情

C++程序设计简明教程 王晓东 第3章 C++函数新.ppt

发布:2015-12-16约字共26页下载文档
文本预览下载声明
第3章 C++函数 3.1 函数基础 3.2 函数调用的方式 3.3 内联函数 3.4 带默认形参值的函数 3.5 函数重载 3.6 函数模板 3.1 函数基础 如果函数A调用了函数B,则约定把A称为主调函数,B称为被调函数。 函数定义 类型 函数名(形参列表) { 变量声明语句 执行语句 } 如果要向主调函数返回值,则用return语句。 return(表达式); 函数原型 类型 函数名(形参列表); 1.如果被调函数在主调函数之前定义,可以不必声明。 2.如果被调函数将要被多个函数调用,则可以把函数声明语句写在程序的开始处。 3.函数声明时可以省略形参的名字,但是形参的类型不能省略。 函数调用 函数名(实参列表); 1.括号内为实参。实参即实际参数,表示传递给被调函数的一些必要数据,实参之间用逗号隔开。 2.如果被调函数有返回值,则函数调用表达式的值就是返回值。 计算n! #includeiostream.h int main() { long fac(int n);//函数声明 int n; long s; cinn; s=fac(n);//函数调用 couts=sendl; return(0); } long fac(int n)//函数定义 { long s; int i; for(i=1,s=1;i=n;i++) s*=i; return(s);//函数返回值 } 参数传递 实参与形参个数相等,类型尽量保持一致。实参向形参传递数据时,从左向右,一一对应。 函数嵌套调用 递归调用 在函数的函数体内又出现直接或间接调用自身的语句,即函数在执行过程中调用自己的现象,称为递归调用。 递归调用计算n! #includeiostream.h int main() { long fac(int n);//函数声明 int n; long s; cinn; s=fac(n);//函数调用 coutn!=sendl; return(0); } long fac(int n)//函数定义 { long s; if(n==1) s=1; else s=n*fac(n-1);//递归调用 return(s);//函数返回值 } 递归调用的执行过程 3.2 函数调用的方式 传值调用 调用时把实参的值从左至右,一一传递给各个形参。这种传递是单向的,形参的值发生变化,对实参毫无影响。 失败的交换 #includeiostream.h int main() { void swap(int a,int b);//函数声明 int a,b; cout请输入两个整数:endl; cinab; swap(a,b);//函数调用 couta=a,b=bendl; return(0); } void swap(int a,int b)//函数定义 { int t;//定义中间变量 t=a; a=b; b=t; } 引用调用 #include iostream.h #include iomanip.h void fun(int x,int y);//y是引用 int main() { int x=1,y=2; cout 函数调用之前:endl; coutx=setw(3)x,y=setw(3)yendl; fun(x,y); cout 函数调用之后:endl; coutx=setw(3)x,y=setw(3)yendl; return(0); } vo
显示全部
相似文档