Aurilia厄瑞莉娅 (@Aurilia) 在 📚【C++ 从入门到入睡】引用与移动语义 中发帖
— c++11 入门费曼学习副产物,如有谬误,望佬友指正,不胜感激 —
📚 其他c++姊妹帖
❀ 命名空间
❀ const与类型转换
❀ 指针与数组
❀ 内存模型与字符串底层
✿ 引用与移动语义
c++中,广义的对象指的是内存上的一片空间。
对象的值是这边内存空间中保存的数据。
左值则是表示对象的一条表达式,左值不是对象的值,是表达式的一种。
int* arr;
// arr是表达式,代表一个在内存上的指针对象,是左值
// arr+1是表达式,代表下一个元素对象地址,是计算结果,不是左值
c++11在程序语言设计一书中将表达式根据是否有身份i和是否可移动m(即资源转移,下文会讲)分为三种范围不重叠的:
lvalue:左值,有身份不可移动。
xvalue:特殊值,有身份可移动。
prvalue:纯右值,无身份可移动。
...