c++ Premier 学习笔记(unit2 变量和基本类型 -引用

(因为是学习笔记,所以很多地方直接从书上敲在电脑上,所以标记成为“转载”)


引用的再次学习

 

C++11中新增了一种引用:所谓的“右值引用(rvalue reference)”。这种引用主要用于内置类。严格来说,当我们使用术语“引用(reference)”时,指的其实是“左值引用(lvalue reference)”。

 

引用(reference)为对象起了另外一个名字,引用类型引用(refers to)另外一种类型。通过将声名符写成&d的形式来定义引用类型,其中d是声明的变量名:

 

int ival=1024;

int &refVal=ival;//refVal指向ival(是ival的另一个名字)

int&refVal2;//报错:引用必须被初始化

一般在初始化变量时,初始值会被拷贝到新建的对象中。然而定义引用时,程序吧引用和它的初始值绑定(bind)在一起,而不是将初始值拷贝给引用。一旦初始化完成,引用将和它的初始值对象一直绑定在一起。因为无法令引用重新绑定到另一个对象,因此引用必须初始化。

引用即别名

Note 引用并非对象,相反的,它只是为一个已经存在的对象所起的另外一个名字。

 

为引用赋值,实际上是把值赋给了与引用绑定的对象。获取引用的值,实际上是获取了与引用绑定的对象的值。同理,以引用作为初始值,实际上是以与引用绑定的对象作为初始值:

       //正确:refVal3绑定到了那个与refVal绑定的对象上,这里就是绑定到ival上

       int &refVal3=refVal;

       //利用与refVal绑定的对象的值初始化变量i

       int i=refVal;

因为引用本身不是一个对象,所以不能定义引用的引用。

 

引用的定义:

       (个人感觉其实和普通的规则没有什么区别,记得变量名前面加个符号就好了)

 

int&refVal4 = 10;  //错误:引用类型的初始值必须是一个对象。

double dval =3.14;

int&refVal5 = dval; //错误:此处引用类型的初始值必须是int型对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值