c++ - 为什么更改引用指向的内容不会引发错误?

标签 c++ reference rules

我已经进入了有关引用的 C++ 学习阶段。它规定了以下规则:

一旦一个引用被初始化为一个对象,它就不能被更改为引用另一个对象。

我写了一段简短的代码(如练习中所要求的那样),旨在证明这条规则是正确的。

int y = 7;
int z = 8;

int&r = y;
r = z;

有人可以解释为什么这段代码编译时没有任何错误或警告吗?

最佳答案

r = z 不会改变 r“指向”的内容。它将 z 的值赋给 r 指向的对象。

以下代码与您的代码做同样的事情,但使用指针而不是引用:

int y = 7;
int z = 8;

int* p = &y; // p points to y
*p = z;      // assign value of z to the object pointed to by p (which is y)

关于c++ - 为什么更改引用指向的内容不会引发错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6930507/

相关文章:

.net - 引用的 DLL 未复制到引用项目

css - 无需编译即可导入 Sass

maven - 将 CodeNarc 与 Maven 结合使用

c++ - 为什么按此顺序评估 '--++a-​-++ +b--'?

c++ - MFC 输入表单不接受少于 5 个符号

c++ - 在 C++ 中将算术类型转换为 std::array<uint8_t> 的最简单方法

java - JBoss Drools 工作内存的多项事实

c++ - <fstream> 命令的 undefined reference

c - YACC 和 Lex 未定义对 `yylex' 的引用

用于带有规则文件的 Gulp 的 PHP Linter?