- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JAVA知识库
C++引用的用法:/view/160006.htm 引用类型 百科名片引用类型 由类型的实际值引用(类似于指针)表示的数据类型。如果为某个变量分配一个引用类型,则该变量将引用(或“指向”)原始值。不创建任何副本。引用类型包括类、接口、委托和装箱值类型。 目录 引用类型 (reference type) 引用和指针的区别 引用的规则: 引用的主要功能 引用在类中的使用 编辑本段引用类型 (reference type) “引用”(reference)是c++的一种新的变量类型,是对C的一个重要补充。它的作用是为变量起一个别名。假如有一个变量a,想给它起一个别名,可以这样写: int a;int b=a; 这就表明了b是a的“引用”,即a的别名。经过这样的声明,使用a或b的作用相同,都代表同一变量。在上述引用中,是“引用声明符”,并不代表地址。 不要理解为“把a的值赋给b的地址”。声明引用并不开辟内存单元,b和a都代表同一变量单元。 注意:在声明引用变量类型时,必须同时使之初始化,及声明它代表哪一变量。在声明一个变量的引用之后,在本函数执行期间,该引用一直与其代表的变量相联系 ,不能再作为其他变量的别名。下面的用法不对: int a1,a2; int b=a1; int b=a2;//企图使b变成a2的别名(引用)是不行的。这样是错误的。 我们可以把a2的值赋给b。 b=a2; 编辑本段引用和指针的区别 看实例吧: 引用是C++中的概念,初学者容易把引用和指针混淆一起。 下面的程序中,n是m的一个引用(reference),m是被引用物(referent)。 int m; int n = m; n相当于m的别名(绰号),对n的任何操作就是对m的操作。 所以n既不是m的拷贝,也不是指向m的指针,其实n就是m它自己。 编辑本段引用的规则: (1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化)。 (2)不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL)。 (3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。 以下示例程序中,k被初始化为i的引用。 语句k = j并不能将k修改成为j的引用,只是把k的值改变成为6。 由于k是i的引用,所以i的值也变成了6。 int i = 5; int j = 6; int k = i; k = j; // k和i的值都变成了6; 编辑本段引用的主要功能 引用的主要功能:传递函数的参数和返回值。 C++语言中,函数的参数和返回值的传递方式有三种:值传递、指针传递和引用传递。 以下是值传递的示例程序。 由于Func1函数体内的x是外部变量n的一份拷贝,改变x的值不会影响n, 所以n的值仍然是0。 void Func1(int x) { x = x + 10; } ... int n = 0; Func1(n); cout n = n = 0 n = 0; n = n endl; // n = 10 以下是 size=14 void Func3(int x) { x = x + 10; } ... int n = 0; Func3(n); cout n = n = 10 (1) 在实际的程序中,引用主要被用做函数的形式参数--通常将类对象传递给一个函数.引用必须初始化. 但是用对象的地址初始化引用是错误的,我们可以定义一个指针引用。 1 int ival = 1092; 2 int re = ival; //ok 3 int re2 = ival; //错误 4 int *pi = ival; 5 int *pi2 = pi; //ok (2) 一旦引用已经定义,它就不能再指向其他的对象.这就是为什么它要被初始化的原因。 (3) const引用可以用不同类型的对象初始化(只要能从一种类型转换到另一种类型即可),也可以是不可寻址的值,如文字常量。例如 double dval = 3.14159; //下3行仅对const引用才是合法的 const int ir = 1024; const int ir2 = dval; const double dr = dval + 1.0; 上面,同样的初始化对于非const引用是不合法的,将导致编译错误。原因有些微妙,需要适当做些解释。 引用在内部存放的是一
文档评论(0)