C++开发基础——移动语义和右值引用

一,右值的基本概念

左值是可以被获取地址的变量,经常出现在赋值语句的左边。

不属于左值的变量都是右值变量,经常出现在赋值语句的右边,例如:字面量,临时对象,临时值。

有名称的变量是左值,没有名称的变量比如"3+4"是右值。

从生命周期看,左值变量是一个持久的变量,在代码运行期间会一直存在,右值变量是一个临时的变量,在代码运行期间会被释放。

右值变量之所以是临时的,是因为一些字面量,表达式计算出来的中间变量、临时对象等都是临时的,使用完就要被销毁。

举个例子:

int a = 40

a:左值,可以获取a的地址:&a。
40:整型字面量,是个临时值,右值变量,不能被获取地址,编码时不能写&40。

二,右值引用的基本概念

右值引用,其实就是字面上说的,针对右值变量的引用。

引用的含义和别名差不多,左值引用通常被理解为左值变量的别名,那么右值引用也可以被理解为右值变量的别名。

右值引用,只针对特别的右值变量,比如临时对象,而字面量等形式的右值变量依旧无法被引用。

大多数情况下,右值引用只能绑定到一个将要被销毁的对象上。

右值引用还可以引用一个临时的表达式结果,只要右值引用还在作用域内,那么这个临时变量就不会被马

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员与背包客_CoderZ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值