【C++学习笔记】之——引用

引用即为对象起的另外一个名字,通过声明符 & 来定义一个引用类型,定义了一个引用之后,对其的所有操作

都是在其绑定的对象上进行的。

引用必须和其绑定的对象类型相同(const修饰的常量引用例外,下面会详细说明)

使用方式:  int num = 1;       //变量定义

         int &number = num;     // number为num的引用

以下是错误使用方式:

         int &ival;        //错误:引用必须被初始化

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

         int &r1 = ival;     //错误:引用必须绑定到对象上,这里ival也是引用,本身只是别名,并不是一个对象,没有地址

常量引用

对常量的引用即把引用绑定到const对象上,常量引用相比普通引用,有以下特殊用法:

1)不能通过常量引用修改其绑定对象的值,但是不影响其绑定对象本身的修改操作

      例:   int i = 5;         //定义常量i

                const int &r = i;       //定义常量引用r

                r = 20;                    //错误:不能通过常量引用修改其绑定对象的值(i = 20 是可以的)

2)常量引用的类型不一定非要和其绑定的对象一致,只要该对象的值可以转换成常量引用对应的类型即可

      例:   double i = 1.2;           //定义 int 变量 i

                const int &r = i;     //正确,可以将 const int & 类型引用绑定到 double 对象

                这里的原理是,先将变量 i 转为 const int 类型,赋给一个临时变量temp,然后将引用 r 绑定到临时

                变量上,所以引用 r 实际上并不是绑定在了 i 上。

                int &r1 = i   //错误    非常量引用必须绑定类型相同的对象

                这个也很好理解,试想一下,类型不同时,r1实际是绑定在了一个临时对象上,而并非 i 上,这样就

                不能通过 ri 来对 i 进行修改,而引用的目的一般就是希望通过引用来修改其绑定的对象,既然不能实

                现修改,那这个绑定是没有任何意义的。

                

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值