今天来聊聊c++的左值,右值,左值引用和右值引用。
1、左值:
凡是可以取地址的变量都称为左右。
例如:
int x;
x=3;
此时x作为变量,可以存在=的左侧,则x称为左值。
2、右值:
前面说了,凡是可以取地址的变量都称为左值,则 没有名字的临时变量,字面量就是右值。
比如:
string s1,s2;
s1+s2="wow";
则s1+s2作为临时变量,则就是右值。
判断是左值还是右值的核心关键是看能否取地址。
3、左值引用的基本表达式:
type &引用名=左值表达式。
例如:
int a=5;
int &a1(a);
4、右值引用的基本表达式。
type &&引用名=右值表达式
例如:
int b=5;
int &&b1(b+1);//由于b+1是个临时变量,则属于右值,再根据右值引用的表达式。