C++基础之值(Value)的类别

1,左值(LValue)

  • 位于赋值运算符左侧,可以进行取地址操作。
  • 函数调用时,左值可以绑定到引用参数。

2,右值(RValue)

  • 在内存中没有持久存储位置的临时值,不能被取地址,通常出现在赋值运算符的右侧。
  • 常见右值如字面量(整数、浮点数、字符),表达式计算结果。

3,纯右值(Pure RValue)

  • C++11引入,多用于临时对象,不可以取地址,不可以绑定到左值引用参数。
  • 返回值为非引用类型的表达式: x++,x+1。
  • 除字符串之外的字面量,如整型12,布尔类型true/false。

4,将亡值(XValue)

  • C++11引入,表示即将被移动的对象,可以被转换为右值引用。

5,右值引用

  • 一种只能绑定到右值上的特殊引用类型,目的是支持移动语义(move semantics)和完美转发(perfect forwarding)。
  • std::move(),移动语义使得在C++里返回大对象(如容器)和运算符成为现实,大大减少不必要的复制操作,提高了代码的简洁性和可读性。
  • std::foward完美转发是C++模板编程中的一个高级特性,允许模板函数或模板类将参数以原始类别(左值或右值)转发给其他函数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值