- 1、本文档共87页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C第三讲(5
第五章 函数 1.程序的优劣 : 1执行时间的多少(由变量定义决定) 2程序代码的长短 3程序的条理性 2.C++语言实现模块化的主要手段就是利用函数,C++将子程序和函数合二为一 3.每个函数都是独立的代码块,它不影响程序其它部份。 5.1 函数与程序结构: 一.函数:按一定的格式排列并能完成某功能的独立的语句集合。 二.程序结构: 1.一个C++程序由多个源程序组成,以源程序为单位进行编绎,而不是以函数为单位。 2.所有函数处于同一作用域级别上,不能把一个函数定义于另一个函数内部。 3.以main()开始,以main()结束,main()不能被调用。 4.库函数:标准函数,由系统提供 用户自己定义的函数: 满足用户需求 5.无参函数,有参函数 5.2 函数的定义 一.有参函数 类型说明 函数名(形式参数表列) { 说明部分 语句(函数体) } 二.无参函数 类型说明 函数名() {说明部分 语句(函数体) } 三.空函数(用于将要扩充功能的地方) 类型说明 函数名() { } 5.3函数的参数和函数的值 一.形式参数、实际参数 形参:定义函数时后面括号中的参数 实参:调用函数时后面括号中的参数 说明:1 .形参未被调用时不占内存。随着函数进入运行而产生,随着函数退出运行而消失,形参不影响实参,若以指针形式调用时则会影响。 2.实参可为常量,变量表达式。 3.必须指定形参类型,形参与实参类型应一致。 若不一致,系统会自动将实参转换为形参类型,但有些数据就会丢失掉。 例5.2: #include”iostream.h” void main() { double add(int u,int v); float x,y; cinxy; coutx+y=add(x,y); } double add(int u,int v) { return(u+v); //会丢掉实参中的小数部分 } 二.函数返回值 由return实现。 reurn有两个用途: ???????1. 使内含它的那个函数退出; 2. 被用来回送一个数值。 说明: 1.return 可有多条,但每次返回只有一条被使用,返回值亦可为常量、变量或表达式的值。 例:if(s!=c) return t; return 1; 3 .若没有return,带回一个不确定的值, 希望不带回值,用void 4. 返回值可以使用它亦可不用。 例5.5 #include”iostream.h” int mul(int a,int b); void main() { int x,y,z; x=3;y=20; z=mul(x,y); coutmul(x,y)endl; mul(x,y); } 5.4函数的调用 函数调用的形式: 函数名(实参表列); 赋值调用:数据之间是“值传递”,单向, 实参→形参 引用调用:数据之间传递地址,使用指针,形参对实参有影响。 5.5 函数嵌套调用 在调用一个函数的进程中又调用另一个函数。但函数定义是相互平行的,不能嵌套定义。 5.6 函数的递归调用 在调用一个函数的过程中,又出现直接的或间接地调用函数本身?。 1.直接调用 int f(int x) { int y, z ; z=f(y); : return(2*z); } 2.间接调用 int f1(int x) int f2(t) { { int y ,z ; int a , c; : : z=f2(y) ; c=f1(a); return(2*z);
文档评论(0)