为什么常量是右值?

判断左值右值的依据是什么?判断标准是能取得变量地址的是左值,不能取得地址的是右值。这句话翻译成可操作性的特征,即具名对象是左值,匿名对象是右值。根据这个特征,比如5,存储在代码区或寄存器,不能取得地址,没有名称,是右值(没有一个标识符映射它),。'5'是个字符,是右值,理由同上。

”5”是个字符串,存储在内存,能够取得地址,是左值。函数func()返回一个对象,这个对象没有名称,是临时对象,虽然有地址,但不能取得,是右值。

左值对象赋值操作,因为别的地方可能要用到这个左值数据,所以不能按地址传递,只能调用拷贝构造函数。右值对象是匿名对象,也就是临时对象,别的地方不可能用得到它,所以可以调用移动构造函数,进行地址传递。

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值