C++ 对对象的引用

C++ 对对象的引用,c++,reference,C++,Reference,让我们宣布: ... int a= 5; int& b= a; ... 我不明白,a和b之间有什么区别。我认为,a和b就是地址。但记忆中的地址在哪里?那么,让我们定义一个函数: int foo(int& x) { return x; } ... foo(a); foo(b); foo呼叫时发生了什么?也就是说,当我们返回一个值时,我们的地址是a或b中的谁 代码中出现的情况是a和b实际上是同一内存位置的别名 因此 及 实际上是相同的。 阅读更多信息,cplusplus.

让我们宣布:

...
int a= 5;
int& b= a;
...
我不明白,
a
b
之间有什么区别。我认为,
a
b
就是地址。但记忆中的地址在哪里?那么,让我们定义一个函数:

int foo(int& x)
{
    return x;
}
...
foo(a);
foo(b);

foo
呼叫时发生了什么?也就是说,当我们返回一个值时,我们的地址是
a
b
中的谁

代码中出现的情况是
a
b
实际上是同一内存位置的别名

因此

实际上是相同的。


阅读更多信息,cplusplus.com的文章通常会非常详细

b
只是
a
的另一个名称。把它想象成一个别名。你用
b
做的任何事情,实际上都是用
a
做的。至于函数,它是
void
,因此返回任何内容都没有意义。什么?此外,您不能从
void
函数返回某些内容。的可能重复项。另见-1:这里没有指针,cplusplus.com是一堆臭东西。@johndilling从某种意义上说,这里实际上有指针。首先,OP讨论地址,其次,引用基本上是很好的指针。如果您不是专门针对
http://www.cplusplus.com/doc/tutorial/pointers/
@stefan:cplusplus.com上的链接页面说指针和数组是一样的。那是错误的。我相信我可以在那个特定的页面上找到更多的错误,但我不同意我的观察,即cplusplus.com是一个糟糕的资源,这是毫无意义的。由于许多错误散布在整个网站上,我的感觉是它根本不能作为一种资源被信任。尤其是新手,他们根本不知道好信息和坏信息的区别。他们怎么可能呢?链接实际上讨论了指针和references@JohnDibling关于这个非常严重的错误:这无关紧要。指针和普通数组都不应该使用,尤其是初学者。但如果你能告诉他们,为什么要诅咒(“臭桩”?浪费时间?或者你也可以指出一个更好的资源:cppreference.com
foo(a);
foo(b);