左值和右值,相对于赋值运算符来说的。
能取地址的叫做左值,不能取地址的叫做右值。
左值引用:int &a = b;
左值引用的赋值运算符,右侧一定是一个左值
右值引用:int &&a = 10;
#include <array>
#include <cctype>
#include <climits>
#include <cmath>
#include <cstring>
#include <ctime>
#include <fstream>
#include <iostream>
using namespace std;
int main(void)
{
int a = 10;
// a为左值, 10为右值
int& c = a; //左值引用
// int &d = 10; //10 不是左值
const int& d = 10; //常引用,只读,不可改,右值引用可以解决
int&& x = 10;
cout << "x=" << x << endl;
x = 100;
cout << x << endl;
return 0;
}