Jam*_*ens 0 c++ const reference
可以理解,编译器将不允许以下内容:
const int ci = 1000;
int &r = ci;
Run Code Online (Sandbox Code Playgroud)
因为这意味着我可以尝试通过r来改变ci的值,但ci是const.
为什么然后允许以下内容,除了首先为r分配非const int之外,它与上面相同?
int i;
const int ci = 1000;
int &r = i;
r = ci;
Run Code Online (Sandbox Code Playgroud)
如果您尝试通过r更改ci,则ci将保持相同的值.然而,与第一个示例不同,它不会被编译器捕获.对此有解释吗?