左值、右值、左值引用、右值引用的理解

左值:能通过取地址符(&)得到地址的。(能在内存中明确找到的,例如:一般变量,包括const变量)
右值:不能通过取地址(&)得到地址的,临时存在的。(例如:字面常量、临时变量)

左值引用(&): 引用左值。(注:const&也能引用右值,但和右值引用有区别)
右值引用(&&):只能引用右值。相当于将右值“固化”,让它一直存在。

		  	   例如:int&& a = 1;
		               a = 2;  //正确, "1"被"固化"在内存里,可以赋值了。

不管是什么引用,它本身也是变量,本质上也是指针

const左值引用与右值引用区别:const&既能引用左值也能引用右值,但是当引用右值时,由于它是const 变量,即被它“固化”后的不能被修改。而右值引用是可以的

		       例如:const int& a = 1;
		                a = 2; //错误,而右值引用是可以的
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值