我注意到将 a 分配char
给 aconst int&
编译,但将其分配给 aint&
会产生编译错误。
char c;
int& x = c; // this fails to compile
const int& y = c; // this is ok
我知道这样做不是一个好习惯,但我很想知道它发生的原因。
我通过查找“分配给不同类型的引用”、“将 char 分配给 int 引用”和“const 引用和非 const 引用之间的区别”来寻找答案,并且遇到了许多有用的帖子(int vs const int&,将 char 分配给 int 变量时的奇怪行为,在 C 和 C++ 中将 char 转换为 int ,引用和 const 引用作为函数参数之间的区别?),但它们似乎没有解决我的问题。
如果之前已经回答过,我深表歉意。