gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:07:34 28 4
gpt4 key购买 nike

所以我正在尝试学习 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com