Skip to content

Latest commit

 

History

History
14 lines (9 loc) · 903 Bytes

什么是左值?什么是右值?有什么不同?.md

File metadata and controls

14 lines (9 loc) · 903 Bytes

左值 (Lvalue):

一个左值表示表达式结束后依然存在的对象。它指向一个具体的内存位置,并且你可以取得其地址。通常情况下,左值表达式可能出现在赋值操作的左侧。

右值 (Rvalue):

一个右值通常是暂时的并且不会长时间存在,它不能被赋予另一个值。右值通常是直接的数据值或者无法通过标识符直接访问的临时对象。

不同点:

  • 身份: 左值具有明确的内存地址,而右值通常没有固定的内存地址。
  • 持久性: 左值代表长期存在的对象,右值代表临时或即将销毁的对象。
  • 可移动性: 右值可以被移动,而左值通常不能,除非显式地转换成右值引用。
  • 引用类型: 可以声明左值引用指向左值(T&),而右值引用(T&&)可以绑定到右值上,优化资源使用。