C语言6引用.ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言6引用

C++程序设计 第六章 引用 内容提要: 引用的概念 引用的使用 6.1 引用的概念 引用就是为某个对象或隐含的临时对象起个别名,对别名的操作等同于对目标对象的操作。 1、引用的定义方法 类型 变量=目标对象; 其中的变量就是目标对象的引用。引用的类型为“类型” 例如: int sum,*p; int rsum=sum; int rcount=0; int * rp=p; 这里,rsum是变量sum的引用,类型为int;rount是一个内部临时变量的引用,类型为int;该临时变量并不显式的表示出来。rp是*p的引用,类型为int*。 说明: (1)对于类对象也可以定义引用。 (2)引用本身不是变量,它是某个对象的别名,其本身不占存储空间。 (3)在定义引用时,马上就要对其进行初始化,不能定义完后再赋值。 如: int i; int j; j=i; //错误 (4)引用一旦被初始化,就不能再重新赋值 如: int i,k; int j=i; j=k; //错误 说明 (5)定义引用时必须指出目标对象(必须进行初始化),目标对象必须是单个对象且已定义或已声明(或系统隐含声明)。不存在的对象不能为其声明引用。 例如:假定有变量定义: int a; 下列引用的声明都是非法的。 int rt=abc;//错误,abc未定义或未声明。 void p=3; //错误,并不存在void 类型的变量 int *p=a;//错误,不存在int *类型 int c[10]=0;//错误,数组不是单个对象,不能定义数组引用 (6)引用声明后,对引用的操作等同于对目标对象的操作。 (7)引用一旦初始化,它就维系在一个固定的目标上,再也不分开。 6.2 引用的使用 1、用引用传递函数参数 例6.1 交换两个变量中的数据(用引用实现) 说明:从本例中可以看出来,引用具有传地址的作用,这一点非常类似于指针类型。正是由于引用作为参数的特点,往往用它来代替指针类型的参数。 例6.1程序 #include stdafx.h #include iostream.h void swap(int x, int y); void main( ) { int x=5; int y=6; coutx yendl; swap(x,y); coutx yendl; } void swap(int rx,int ry) { int temp; temp=rx; rx=ry; ry=temp; } 2、利用引用返回多个值 从例6.1可以看出,引用能够改变实际参数的值。因此可以利用这一点实现返回多个值。 例6.2 求某个数的平方和立方(用引用实现)。 6.2 程序 #include stdafx.h #include iostream.h int factor(int,int,int); void main( ) { int number,squared,cubed,error; coutEnter a number(0~20):; cinnumber; error=factor(number,squared,cubed); if (error) coutError encountexd!endl; else { coutnumber:numberendl; coutSquared:squaredendl; coutCubed:cubedendl; } } 3、引用返回值 引用表达式是一个左值表达式,因此它可以出现在形、实参数的任何一方。若一个函数返回了引用,则该函数调用也可以被赋值。 例6.3 #include stdafx.h #include iostream.h float temp; float fn2(float r) { temp=r*r*3.14; return temp; } void main( ) { float a=fn2(5.0); //a是float型变量,它得到了函数返回值 float b=fn2(5.0); //b是一个引用,它是函数返回的变量temp的引用 coutaendl; coutbendl; b=80; coutbendl; couttempendl; } 说明: 一般说来,当返回值不是本函数的内定义的局部变量时就可以返回一个引用。 在通常情况下,引用返回值只用在对函数的调用重新赋值的场合,也就是对函数的返回值重新赋值的时候。 例6.4 p156例 定义一个assoc类,其中用一个数组来表示每个单词的情况,而每个单词除它在正文中的出

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档