int a=10; //非常量左值(有确定存储地址,也有变量名) constint a1=10; //常量左值(有确定存储地址,也有变量名) constint a2=20; //常量左值(有确定存储地址,也有变量名) //非常量左值引用 int &b1=a; //正确,a是一个非常量左值,可以被非常量左值引用绑定 int &b2=a1; //错误,a1是一个常量左值,不可以被非常量左值引用绑定 int &b3=10; //错误,10是一个非常量右值,不可以被非常量左值引用绑定 int &b4=a1+a2; //错误,(a1+a2)是一个常量右值,不可以被非常量左值引用绑定
int a=10; //非常量左值(有确定存储地址,也有变量名) constint a1=20; //常量左值(有确定存储地址,也有变量名) constint a2=20; //常量左值(有确定存储地址,也有变量名)
//非常量右值引用 int &&b1=a; //错误,a是一个非常量左值,不可以被非常量右值引用绑定 int &&b2=a1; //错误,a1是一个常量左值,不可以被非常量右值引用绑定 int &&b3=10; //正确,10是一个非常量右值,可以被非常量右值引用绑定 int &&b4=a1+a2; //错误,(a1+a2)是一个常量右值,不可以被非常量右值引用绑定