- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章-函数和存储类
第5章 函数和存储类 5.1函数的定义和说明 【例5.1】从键盘上输入两个浮点数,编程球它们的和 #includeiostream.h void main() { double x,y; cout“Input double x and y”; cinxy; double z=x+y; cout“x+y=”zendl; } 5.1.1函数的定义格式 函数的一般定义格式为: 类型说明符 函数名 参数表 { 函数体内若干语句 } 5.2 函数的参数和返回值 5.2.2设置函数参数的默认值 C++语言允许在函数被说明或定义时给一个或多个参数指定默认值,给函数的调用带来方便 【例5.3】分析下列程序的输出结果,熟悉默认参数的用法 #includeiostream.h void fun(int a=1,int b=2,int c=3) { cout“a=”a‘,’“b=”b‘,’“c=“cendl; } void main() { fun(); fun(9); fun(4,5); fun(7,8,9); } 【例5.4】分析下列程序的输出结果,并分析设置默认参数的特点 #includeiostream.h int q=5,p=7; int sum_int(int a,int b=p+q,int c=p*q); void main () { int x=5,y=10; int s1=sum_int(x); int s2=sum_int(x,y); cout“s1=”s1“s2=“s2endl; } int sum_int(int a,int b,int c) { return a+b+c; } 程序结果如下:s1=52 s2=50 5.3 函数的调用方式 5.3.1 函数的传值调用 1.传值调用方式 将实参的数据值传给形参,将实参值拷贝一个副本放在被调用函数的栈里,在被调用函数里,改变了形参的值而不影响调用函数的实参 2.传址调用方式 将实参的地址传给形参,于是提供了一种可以改变实参变量值的方法,在被调用函数中改变形参所指向的变量值,这与传值的方式是不一样的 5.4 函数的嵌套调用和递归调用 5.4.1 函数的嵌套调用 【例5.5】分析下列函数嵌套的结果 #includeiostream.h void fun1(),fun2(),fun3(); void main() { cout“It is in main()”endl; fun2(); cout“It is back in main()”endl; } void fun1() { cout“It is in fun1()”endl; fun3(); cout“It is back in fun1()”endl; } void fun2() { cout“It is in fun2()”endl; fun1(); cout“It is back in fun2()”endl; } void fun3() { cout“It is in fun3()”endl; } 5.4.2 函数的递归调用 1.递归调用的特点 函数的递归调用是指在调用一个函数的过程中直接或间接的调用该函数的自身 2.递归调用的过程 递归调用分两个阶段 递推阶段:将原问题不断分解为新的子问题,最后达到递归的结束条件 回归阶段:该阶段从已知的条件出发,按递推的逆过程 3.举例 long fact(int n) { if(n==0) return 1; return fact(n-1)*n; } 5.5 内联函数和重载函数 5.5.1内联函数 内联函数的定义办法是在函数头前加关键字inline 例: inline int sum_int(int x,int y) { return x+y; } 5.5.2 重载函数 重载函数是指同一个函数名字对应着不同的函数实现 int abs(int); long abs(long); double abs(double); 【例5.11】编程求一个数的平方 #includeiostream.h void print(int); void print(double); void main() { print(8); print(‘m’);
文档评论(0)