-3

让我们声明:

...
int a= 5;
int& b= a;
...

a我不明白,和之间有什么区别b。我认为,那a只是b地址。但是这个地址在内存中的哪里呢?所以,让我们定义一个函数:

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

foo打电话时发生了什么?即,当我们返回一个值时,我们将通过地址 whos in aor去b

4

2 回答 2

4

您的代码中发生的情况是,a并且b实际上是同一内存位置的别名。

因此

foo(a);

foo(b);

实际上是相同的。

于 2013-10-16T13:55:01.047 回答
1

http://www.cplusplus.com/doc/tutorial/pointers/

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

于 2013-10-16T13:57:51.587 回答