“非常量引用的初始值必须为左值”原因分析及解决

清泛原创

引用变量指向了一个不能取址的值(即左值)导致的,如果地址都没有,怎么可能作为非常量引用的值呢,例如:

int& a = 5; //错误
const int& a = 5; //正确

int a = 5; int& b = a; //正确

左值和右值都是针对表达式而言的,左值是指表达式结束后依然存在的持久对象,右值是指表达式结束时就不再存在的临时对象。一个区分左值与右值的便捷方法是:看能不能对表达式取地址,如果能,则为左值,否则为右值。

引用 左值

分享到:
评论加载中,请稍后...
创APP如搭积木 - 创意无限,梦想即时!
回到顶部