- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.1 函数的定义与使用 系统库函数:需要包含相应的头文件,如 #include math.h 系统所提供的库函数都是完成一些通用功能的函数,在实际的程序设计中,自己还需要编写大量完成特殊功能的函数,我们称之为用户自定义函数。 4.1.1 函数的定义 函数定义的一般格式为: 函数类型 函数名( 形式参数表) { 语句组 } 例4.1 求两个整数中较大的值的函数 #include iostream.h int max(int x, int y); void main() { ?????? int a,b,c; ?????? cout 请输入两个整数,用空格分隔:; ?????? cin a b; ?????? c = max(a,b); ?????? cout a,b中较大的数是: c endl; } int max(int x, int y) { ?????? int? m; ?????? if(xy)? m=x; ?????? else ?? m=y; ?????? return m; } 1. 函数类型与返回值 函数的类型就是函数返回值的类型,可以是C++中的任何数据类型。 函数的返回值由函数体中的return语句给出。 return语句的一般格式为: return? (表达式); 或 return? 表达式; 或 return ; 函数的类型要与return语句的返回值类型相同。 若不一致则以函数类型为准,将返回值类型转换为函数类型,若不能转换,则编译过程会出错! 若函数不需要返回值,则应将类型指定为void。 函数的参数 函数通过参数的传递来接收数据。 函数头中的参数为形式参数(或形参) 在函数调用时给出的参数称为实际参数(或实参) 实参必须是一个实际的值,而形参只有在发生实际调用时才有具体的值。 如果不需要为函数提供数据,则可以没有参数,称之为无参函数。 4.1.2 函数的声明与调用 函数原型声明:在调用函数前,对函数进行说明。 通常用于函数定义出现在函数调用之后的情况。 函数原型声明的一般格式: 函数类型 函数名(形式参数表); 注意:函数原型中可以不写出参数名。 如:int max(int, int); 函数调用的一般格式: 函数名(实际参数表) 注意:若无形参,也不必给出实参,但括号不能省略。 实参与形参个数应一致,类型要一一对应。 例4.2 编写一个求x的n次方的函数 #include iostream.h double power(double x, int n); void main() { ?????? double x; ?????? int n; ?????? cout 请输入X和N的值,用空格分隔:; ?????? cin x n; ?????? cout x 的 n 次方是: power(x,n) endl; } double power(double x, int n) { ?????? double? a = 1.0; ?????? int i; ?????? for(i=1; i=n; i++) ????????????? a *= x; ?????? return a; } 4.2 函数调用的参数传递 根据函数形参的不同,函数调用分为数值传递调用地址传递调用与引用传递调用三种方式。 4.2.1 值传递 C++中参数的传递是单向的,即只能将实参的值传递给形参,而形参值的改变对实参没有影响。 例4.3 写一个函数交换主函数中两个变量的值 考虑:使用值传递,将需要交换的变量作为实参传递给函数的形参,在函数体中完成交换值的过程,这种做法能否实现程序要求? 例4.3 源程序 #include iostream.h void swap(int x, int y); void main() { int a, b; a = 10; b = 20; swap(a, b); cout a , b endl; } 4.2.2 使用引用做函数参数 1. 引用
文档评论(0)