Tho*_*hor 2 c++ pointers const reference
我是C++的新手.我正在努力学习const的概念.有人可以告诉我为什么第一个声明是非法的,而第二个是合法的?
int i = -1, &r = 0;
const int i = -1, &r = 0;
Run Code Online (Sandbox Code Playgroud)
i这是一个红鲱鱼,问题是int &r = 0;对比const int &r = 0;
非const左值引用必须直接绑定到左值.0不是左值,所以int &r = 0;失败了.
const值左侧引用可以绑定到右值.发生这种情况时,它不会直接绑定.相反,创建临时(const int此处为类型)并从rvalue复制初始化.由于这种约束,临时使其寿命延长.
因此const int &r = 0;是合法的并且具有类似的效果const int __temp = 0; const int &r = __temp;