- 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第2章引用和函数的高级用法
Chapter 第1章内容回顾 C 和 C++起源 C 的优缺点 过程化程序设计和面向对象程序设计 最简单的C++程序 本章目标 学完本章内容以后,你将能够对C++引用,重载函数,内联函数,默认参数的函数,递归函数有个深刻的理解掌握和应用。 引用的优点和使用方法 函数 内联函数 重载函数 默认参数函数 递归函数 2-1-1 引用的概念 1、创建引用的格式: Type 变量名 = 引用的变量 例: int a =10; int ret = a; 2、引用的使用: 与一般变量的使用格式相同 例:cout ret endl; 3、引用的特点 引用:引用的实质是某变量的别名; 对引用的操作实质是对所引用变量的操作 引用的地址与所引用变量的地址相同 注意:只有在声明引用时是引用操作符,其他时候都是地址操作符 2-1-2 引用的使用 2-1-2 引用的使用 通过引用修改变量的值 2-1-3 指针引用 int a = 10,b = 20; int *p = b; int * ret2 = p; int * ret4 = ret2; //错误 cout“*ret2:”ret2“b:”bendl; ret2 = a; cout“p:”p“ ”“a:”a“ ”“ret2:”ret2endl; 1、指针也是变量,所以可以有指针变量的引用: 2、指针引用保存的是指针的内容(变量的地址) 3、通过指针引用改变了原指针的指向的地址 4、指针引用的特性与指针相类似,与一般引用不同 注意:当一个引用所引用的是一个指针时(指针引用),此时引用的用法与指针一样 引用的常见错误 1、 voida; 有void指针没有void引用 2、 int a[10]; int ra[10] = a; 3、int a; int ra = a; int *p = ra; 有指针的引用和指针的指针,没有引用的指针和引用的引用 4、 int ri = NULL; 有空指针无空引用 5、 int ra = int; 引用不能用类型来初始化 2-1-4 引用作函数参数 传递引用给函数与传递指针的效果一样(传址调用) 用引用作为参数比使用指针要容易理解 用引用实现swap函数: 2-1-4 引用作函数参数 传递引用给函数的内存布局 2-1-4 引用作函数参数 潜在问题 因为将引用作为函数参数时,函数调用与一般函数调用一致,但是所产生的效果却不一样(一个传值,一个传址),所以当我们不想在函数中改变时,使用引用作为参数就可能改变参数 2-1-5 引用作返回值 问题:函数返回值时,要生成一个值的副本,并且系统要执行将这个副本调入调用函数。有没有办法提高系统效率呢? 使用引用作为参数和返回值给函数的意义 而用引用返回值时,不生成值的副本,所以提高了效率 2-1-5 利用引用返回值 返回值和返回引用的内存对比 2-1-5 引用作返回值 注意: 如果返回不在作用域范围内的变量或对象的引用那就有问题了。这与返回一个局部作用域指针的性质一样严重 float fn2(float r) { float temp; temp=r*r*3.14; return temp; //返回局部变量的引用 } int main() { float d=fn2(5.0); //警告,返回的引用是个局部变量 cout d endl; return 0; } 2-1-5 引用作返回值 解决办法:返回全局变量的引用 float s; float fn2(float r) { s = r*r*3.14; return s; } int main() { float r = 5.0; float d=fn2(r); //正确 cout d endl; return 0; } 2-1-5 引用作返回值 解决办法:将形参设置为引用 float fn2(float r) { r = r*r*3.14; return r; } int main() { float r = 5.0; float d=fn2(r); //正确 cout d endl; return 0; } 2-1-6 const 限制 传递指针和引用更大的目的是效率 传递的地址特征使得所传的参数处于随时被修改的危险之中 保护实参不被修改的办法是传递const 指针和引用 引用总是const的 如果对引用应用关键词const,其作用就是使目标成为const变量 const 限制 const
有哪些信誉好的足球投注网站
文档评论(0)