所以我正在尝试学习 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;
无效,因为 &x
是 x
的地址(它是一个 int*
)。 y
是对 int
的引用,而不是对 int*
的引用。
关于c++ - 澄清 C++ 中的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8633049/