- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络游戏开发语言基础-C++程序设计 专业教程 理论讲解部分 Ver3.1 第014课 函数 概述: 引用的概念和应用 递归调用 数组做为参数的使用 重点: 难点: 递归调用 引用的应用 递归调用 5 函数 第014课 函数 5.4 引用 5.4.1 引用变量的说明 引用变量的说明格式与指针变量说明相似: 类型名 & 变量名 = 对象变量名; 与指针说明的区别是: 用符号‘&’代替符号‘*’。 赋初值部分不可缺省。 例如: int size=5,color; int &refs=size; int &refc=color; 5 函数 第014课 函数 引用类型不能组成数组. 引用类型不能定义指针。 5.4.2引用类型的使用限制 5 函数 第014课 函数 引用型参数在函数被调用时,相应的实参必须是对应类型的变量或对象. 在调用函数体运行前,生成该实参的引用变量. 在整个函数体运行过程中,这个引用变量相当于作为实参的变量或对象的别名,直到函数调用结束返回. 5.4.3 引用型参数 把函数的参数说明为某一类型(或类)的引用类型,意味着这个参数为“变量参数”,称为引用调用。 在使用时要注意: 第014课 函数 5 函数 它可以把函数外的变量以别名的形式引入到函数体内参加运算,非常方便,这种方式比用指针解决这个问题更合理。 它不必在调用时创建与实参变量或对象对应的值参数变量,当实参变量或对象占用内存较多时,这可以节省内存。 用指针也可以实现类似于引用调用的效果,但由于指针可以改变内容,任意赋值,因此它不如引用型参数安全。 引用型参数的优点是: 第014课 函数 5 函数 当把函数的返回类型说明为引用型时,这个函数返回的不仅仅是某一变量或对象的值,而且返回了它的“别名”。 引用型返回类型的函数调用就是一种左值表达式,可以作为值,也可被赋值: 5.4.4 引用型的函数返回值 int a=3,b=5,c; int & maxr(int m,int n) { if(mn)return m; return n; } 此时函数可以这样调用: maxr(a,b)++; 第014课 函数 5 函数 5.5 函数的声明 在主调函数中调用某函数之前应对该被调函数进行说明,这与使用变量之前要先进行变量说明是一样的。在主调函数中对被调函数作说明的目的是使编译系统知道被调函数返回值的类型,以便在主调函数中按此种类型对返回值作相应的处理。其格式: 类型说明符 函数名(类型 形参,类型 形参…); 第014课 函数 5 函数 C语言中曾规定如果被调函数的返回值是整型或字符型时,可以不对被调函数作说明,而直接调用。这时系统将自动对被调函数返回值按整型处理。 当被调函数的函数定义出现在主调函数之前时,在主调函数中也可以不对被调函数再作说明而直接调用。 如在所有函数定义之前,在函数外预先说明了各个函数的类型,则在以后的各主调函数中,可不再对被调函数作说明。 对库函数的调用不需要再作说明,但必须把该函数的头文件用include命令包含在源文件前部。 在以下几种情况时可以省去主调函数中对被调函数的函数说明。 第014课 函数 5 函数 C语言中不允许作嵌套的函数定义。因此各函数之间是平行的,不存在上一级函数和下一级函数的问题。但是C语言允许在一个函数的定义中出现对另一个函数的调用。这样就出现了函数的嵌套调用。即在被调函数中又调用其它函数。这与其它语言的子程序嵌套的情形是类似的。 5.6 函数的嵌套调用 第014课 函数 5 函数 5.7 函数的递归调用 一个函数在它的函数体内调用它自身称为递归调用。这种函数称为递归函数。C语言允许函数的递归调用。在递归调用中,主调函数又是被调函数。执行递归函数将反复调用其自身。 为了防止递归调用无终止地进行,必须在函数内有终止递归调用的手段。常用的办法是加条件判断,满足某种条件后就不再作递归调用,然后逐层返回。 第014课 函数 5 函数 #include stdio.hlong ff(int n) { long f; if(n0) printf(n0,input error); else if(n==0||n==1) f=1; else f=ff(n-1)*n; return(f); } 用递归法计算n! n!可用下述公式表示:n!=1 (n=0,1)n!=n×(n-1)! (n1) 第014课 函数 5 函数 void main() { int n
文档评论(0)