当有人说在C++中无法更改引用时,这意味着什么

Jef*_*eff 1 c++

最近,我正在阅读一些关于C++的书籍,如"C++ primer"和"Effective C++".几乎每本书都说参考不能改变.我对这个说法感到困惑.因为,我可以写下这样的代码.

int a = 1, b = 2;
int& c = a;
// then I can change the reference c without compile errors.
c = b;
Run Code Online (Sandbox Code Playgroud)

所以,我无法理解它是什么意思,参考不能改变.

god*_*el9 6

当人们说无法更改引用时,它们意味着您无法更改引用引用的对象...例如,使用指针,您可以执行以下操作:

int a = 1, b = 2;
int *c = &a; // c points to a
c = &b;      // c now points to b instead
*c = 3;      // b now equals 3
Run Code Online (Sandbox Code Playgroud)

没有相应的参考代码.初始化参考后:

int a = 1, b = 2;
int &c = a;
Run Code Online (Sandbox Code Playgroud)

您无法更改引用,以便c = 3;现在更改语句b而不是a.