- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序设计(第4章2011924)
第4章 函数 本章学习重点掌握内容: 函数的定义 函数的调用 函数参数的传递方式 内联函数和函数重载 4.1 函数的定义 C++语言函数定义的基本格式为: ① 函数名需符合标识符的命名规则。 ② 函数类型规定了函数返回值类型,它可以是C++语言中任何一种合法类型。如果函数没有返回值时,必须用关键字void加以说明,缺省的返回值类型为int型。 ③ 形式参数列表(即形参列表)是被调函数接受调用者数据的主要途径,定义时应分别给出各形式参数的类型,并用逗号隔开。形参表可以为空,但函数名后的一对圆括号不能省略。 ④ 函数体是由一对花括号括起来的语句序列,用于描述函数所要执行的操作。 ⑤ 函数体可以为空,但此函数定义中的一对花括号不能省略。 【例4.2】下面print() 函数用于输出如下图形。 ***** ***** ***** 4.1.2 函数的返回值 函数的返回值是通过函数中的return语句获得的 当函数有返回值时,函数体内要有一个return语句 return语句将被调用函数中的一个确定值带回到调用它的函数中。 如果一个函数无返回任何值时,则将该函数的类型指定为void,这时函数体内不必使用return语句。 ① return语句的格式有3种: return( expression); return expression ; return; ② 若函数体中无return语句,当执行到函数末尾时自动返回到调用函数。 ③ 函数的返回值最多只有一个,可通过return 语句返回主调函数。 4.2 函数的调用 函数调用的形式: 函数名(实参列表) 说明 实参列表中的参数可以是常量、变量或其它构造数据类型,也可以是表达式。 各实参之间用逗号隔开。 实参和形参的个数应相等,类型一致,实参与形参一一对应结合。 对于无参函数调用时则没有实参列表项。 4.2.1 函数的调用形式及过程 函数的调用过程: 为形参及函数体中的变量分配存储空间; 用实参向形参传递数据; 中断现行(调用)函数,将控制转交给被调用函数执行。 函数调用后的返回过程 先计算出返回语句中表达式的值 若表达式值的类型与函数类型不一致,则强制转换。 将计算出的表达式值返回给调用函数作为返回值。 将控制由被调用函数转向调用函数,执行后面的语句。 4.2.2 函数的声明 而编译器获得函数原型有两种情况: (1)当函数定义在调用之前时,则从定义中抽取函数原型。 (2)当函数定义在调用之后时,则程序员须在调用之前用函数原型对函数进行声明,让编译器获得函数原型。 函数声明 函数声明也称函数说明或函数原形,形式如下: 函数类型 函数名(参数列表); 说明: 各部分的含义与函数定义相同,由于它是说明语句,没有函数体,所以需以分号结束,且可以省去参数名,因为函数声明只关心参数列表中参数的个数和类型。 对于标准库函数,它是通过相应的头文件来加以说明的,在头文件中含有标准库函数的说明。因此使用前需在程序的开头用#include命令把头文件包含进来。 函数声明示例1 #include iostream.h long fact(int); //函数声明 void main() // main( )在fact()定义的前面 { int n; long p; cinn; p=fact(n); //函数调用 coutpendl; } long fact( int m) //函数定义,定义函数fact求m的阶乘 { int i; long s=1; for(i=1;i=m;i++) s=s*i; return(s); //函数返回 } #include iostream.h long fact( int m) // fact函数先定义,后调用 { int i; long s=1; for(i=1;i=m;i++) s=s*i; return(s); // 将求得的结果返回 } void main() { int n; long p; cinn; p=fact(n); //调用fact函数,求出n的阶乘,放在p中 coutpendl; } 总结 ① 若被调函数是标准库函数或用户已编写的函数(与主调函数不在同一文件
文档评论(0)