引用变量指向了一个不能取址的值(即左值)导致的,如果地址都没有,怎么可能作为非常量引用的值呢,例如:
int& a = 5; //错误
const int& a = 5; //正确
int a = 5; int& b = a; //正确
左值和右值都是针对表达式而言的,左值是指表达式结束后依然存在的持久对象,右值是指表达式结束时就不再存在的临时对象。一个区分左值与右值的便捷方法是:看能不能对表达式取地址,如果能,则为左值,否则为右值。
“非常量引用的初始值必须为左值”原因分析及解决
来源:清泛原创 2016-11-02 09:48:30 人气: 我有话说( 0 人参与)
引用变量指向了一个不能取址的值(即左值)导致的,如果地址都没有,怎么可能作为非常量引用的值呢,例如:int& a = 5; 错误const i...