C 中的参考和常量混淆
reference and const confusion in C++
我知道参考只是变量的另一个名称,它们不作为内存中的单独对象存在,而是在这里发生的事情
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。
相关文章:
- 为什么make_nvp需要非常量参考?
- 什么是常量参考参数以及如何使用它?
- 常量参考的正确语法
- 为什么双转换到看似任何原始的常量参考
- 为什么未调用具有常量参考返回值的超载方法
- 用整数值初始化非常量参考
- 为什么可以将其他类型变量用作C 中常量参考参数参数的参数
- 常量参考延长对象的寿命,然后是const_cast,这是一个好主意吗?
- 具有常量参考的可变参数模板专用化
- C 中的参考和常量混淆
- 完美的转发常量参考扣除错误
- 将计算结果保存到常量参考中
- 我如何安全地坚持使用C 常量参考
- 获取迭代器以供常量参考
- 通过常量参考临时延长寿命
- 与非常量参考参数交换
- c++棘手的常量参考考试任务
- 常量参考不"updated"
- 范围为循环常量参考似乎没有区别
- 常量参考和左值