C++之引用变量的作用及用法

本文介绍了C++中的引用变量,它作为已有变量的别名,主要用于函数参数,避免复制大型数据结构。引用不同于指针,它总是绑定到初始对象,并且不能改变绑定。示例展示了引用如何工作,强调了引用在处理变量值时的直接性。对于C语言程序员,理解引用可能需要克服与指针的混淆。
摘要由CSDN通过智能技术生成

       C++新增了一种复合类型——引用变量。引用是已定义的变量的别名(另一个名称)。例如,如果将twain作为clement变量的引用,则可以交替使用twain和clement来表示该变量。那么,这种别名有何作用呢?引用变量的主要用途是用作函数的形参。通过将引用变量用作参数,函数将使用原始数据,而不是其副本。这样除指针之外,引用也为函数处理大型结构提供了一种非常方便的途径,同时对于设计类来说,引用也是必不可少的。
       C和C++使用&符号来指示变量的地址。C++给&符号赋予了另一个含义,将其用来声明引用。例如,要将rodents作为rats变量的别名,可以这样做:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCP5p6t56CB,size_20,color_FFFFFF,t_70,g_se,x_16
其中,&不是地址运算符,而是类型标识符的一部分。就像声明中的char*指的是指向char的指针一样,int &指的是指向int的引用。上述引用声明允许将rats和rodents互换——它们指向相同的值和内存单元,以下程序表明了这一点。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCP5p6t56CB,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCP5p6t56CB,size_20,color_FFFFFF,t_70,g_se,x_16

       注意,下述语句中的&运算符不是地址运算符,而是将rodents的类型声明为int &,即指向int变量的引用:

72952c4ebc804aeb9952ccb94763e46a.png
但下述语句中的&运算符是地址运算符,其中&rodents表示rodents引用的变量的地址:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCP5p6t56CB,size_20,color_FFFFFF,t_70,g_se,x_16
下面是程序的输出结果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCP5p6t56CB,size_20,color_FFFFFF,t_70,g_se,x_16
       从中可知,rats和rodents的值和地址都相同。将rodents加1将影响这两个变量。更准确地说,rodents++操作将一个有两个名称的变量加1。(同样,虽然该示例演示了引用是如何工作的,但并没有说明引用的典型用途,即作为函数参数,具体地说是结构和对象参数,稍后将介绍这些用法)。
       对于C语言用户而言,首次接触到引用时可能也会有些困惑,因为这些用户很自然地会想到指针,但它们之间还是有区别的。

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小枭码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值