c++复习之引用

一.左值引用


首先介绍一下引用,通俗来讲就是取了一个别名,比如我叫狗头,你也可以叫我沙漠死神。

一.1引用必须初始化

不初始化就报错了 

一.2一个变量可以有多个引用

一.3引用一旦引用一个实体,再不能引用其他实体

一.4const的使用

取别名的原则:对引用实体变量,引用的权限(主要指读写权限)只能缩小,不能放大。

 一.5

传值返回:会有一个拷贝。
引用返回:没有拷贝,直接返回变量的别名。

引用的效率更高。

二.右值引用

右值也是一个数据的表达式,如字面常量,表达式返回值,传值返回的函数的返回值(不能是左值引用返回)。右值不能取地址,不能出现在赋值符号的左边。

关键看能不能取地址

给右值取别名就用右值引用,右值引用是左值了,放在赋值符号的左边了。

右值不能取地址,但是给右值引用后,引用的变量是可以取地址的,并且可以修改!
右值引用存放的地方在栈的附近。

const修饰的左值,只能获取地址,不能赋值。

但是const修饰的左值引用既可以引用左值,又可以引用右值。在没有右值引用的时候就必须采用这种方式了。

右值引用的效率对比

左值

右值

 c++11后都支持都提供移动赋值和移动构造(都是让将亡值利用起来)

1、内置类型表达式的右值,纯右值。
2、自定义类型表达式的右值,将亡值。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值