C 中的参考和常量混淆

reference and const confusion in C++

本文关键字:常量 参考      更新时间:2023-10-16

我知道参考只是变量的另一个名称,它们不作为内存中的单独对象存在,而是在这里发生的事情

double i = 24.7;
const int &ri = i;  //notice int here
std::cout << i << std::endl; //prints 24.7
i = 44.4;
std::cout << ri << std::endl; // prints 24
std::cout << i << std::endl; //prints 44.4

我的问题是ri是什么?[内存中的值24]

您无法直接用不同类型的对象绑定引用。

对于const int &ri = i;i首先需要转换为int,然后创建一个临时int,然后绑定到ri,它与原始对象i无关。

btw:临时的寿命延长以匹配此处参考的寿命。

btw2:临时性只能绑定到lvalue-reference至 const或rvalue-reference。