asp.net网站建设ppt,网站建设销售怎样,中小学网站建设论文,广州官方宣布关于不同类别表达式的举例#xff0c;请参考博文《C 中的值类别》
1. 左值和右值的简单理解
左值对应了具有内存地址的对象#xff0c;而右值仅仅是临时使用的值对象。#xff08;引用自博文《C 中的值类别》#xff09;左值有名称#xff08;变量或常量名称#xff09… 关于不同类别表达式的举例请参考博文《C 中的值类别》
1. 左值和右值的简单理解
左值对应了具有内存地址的对象而右值仅仅是临时使用的值对象。引用自博文《C 中的值类别》左值有名称变量或常量名称右值是临时对象没有名称
2. lvalue: locator-value
快速判断标准每次调用此表达式值所在的地址都一样。 Note [Arthur O’Dwyer]: So anything with a name is always an lvalue, regardless. 所以无论如何任何有名字的对象总是左值。 13.3 rvalue右值
右值举例
Literals字面量ep. 42
13.3.1 右值的特点
无法建立普通引用因为右值没有合法的固定地址
13.3.2 prvalue: pure right-value
纯右值prvalue Cppreference: prvalue examles
prvalue被绑定到引用上时其生命周期会延长
这里我们参考了博文《现代C之万能引用、完美转发、引用折叠(万字长文)》中的描述 [有生命周期延长的情况] 如果一个 prvalue 被绑定到一个引用上它的生命周期则会延长到跟这个引用变量一样长。 13.4 Xvalue亡值
13.5 Xvalue与prvalue的区别
它们的主要区别在于xvalue表示的对象是可以被移动的其资源可以被转移到另一个对象中而prvalue则不能。
13.6 String literal is an lvalue; other literals are rvalues.
C标准中明确说明了字符串立即数会被视为左值而其它立即数则视为右值。
13.7 Rvalue-reference
对于局部变量std::move产生的右值变量和原始变量共享相同地址
示例Cpp_var_rref