c++ - 澄清 C++ 中的引用

标签 c++ variables reference

所以我正在尝试学习 C++,但我遇到了一些让我有些困惑的事情。我有代码,

int x = 0;
int &y = x;
cout << &x<< " " << x << " " << &y << " " <<y<< endl;

这可以很好地编译并产生:

0 003AFA08 0 003AFA08

我无法理解为什么 x(一个整数)到 &y(一个引用)的转换不会导致错误。起初我以为这是某种转换,但是,

int &y = &x;

导致错误。

谁能解释一下为什么会这样?提前致谢。

最佳答案

int& 不是地址。这是一个引用

int& y = x;y 声明为对 x 的引用。它实际上意味着 y 成为 x 的另一个名称。任何时候你使用 y,就好像你说的是 x

指针(不是引用)用于存储地址。 int& y = &x; 无效,因为 &xx 的地址(它是一个 int*)。 y 是对 int 的引用,而不是对 int* 的引用。

关于c++ - 澄清 C++ 中的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8633049/

相关文章:

c++ - Tesseract - 获得具有置信度的替代结果

javascript - 从 jQuery 事件更新全局变量

java - 为什么我不能为方法返回的对象引用赋值?

reference - 有什么方法可以返回对在函数中创建的变量的引用?

c++ - 尝试使用 std::vector<MyClass>

c++ - 为什么迭代器没有被取消引用为左值

bash - 检查路径上是否有空格的远程服务器上存在文件

variables - let * 中的 undefined variable

java - 更改 Java 动态列表或映射中的对象引用

c++ - 如何在字符串输入中查找模式?