c++ - 当有人说不能在 C++ 中更改引用时,这意味着什么

标签 c++

最近在看《C++ primer》、《Effective C++》等C++方面的书,几乎每本书都说引用不能改。我对这种说法感到困惑。 因为,我可以这样写代码。

int a = 1, b = 2;
int& c = a;
// then I can change the reference c without compile errors.
c = b;

所以,我无法理解不能更改引用是什么意思。

最佳答案

当人们说引用不能改变时,他们的意思是你不能改变引用所引用的对象......例如,对于指针,你可以这样做:

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

没有等效的引用代码。初始化引用后:

int a = 1, b = 2;
int &c = a;

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

关于c++ - 当有人说不能在 C++ 中更改引用时,这意味着什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20462070/

相关文章:

c++ - 奇怪的 "unsigned long long int"行为

C++ g++和msvc之间的不同文件读/写时间

c++ - 返回未知类型的函数

c++ - 从 'triangle-soup' 中查找唯一顶点

java - C++/Openssl 从编码字节中获取 RSA key (由 java 编码)

java - 本地 C++ 和 Java 程序之间通信的良好替代方案是什么?

c++ - 错误说 'aw' 可能没有在 cpp 的这个构造函数中初始化

C++——如何重载运算符+=?

c++ - 并行化 std::for_each 中的数据竞争

c++ - 使用 Visual Studio 2005 在 C++ 中绘图