让我们声明:
...
int a= 5;
int& b= a;
...
a
我不明白,和之间有什么区别b
。我认为,那a
只是b
地址。但是这个地址在内存中的哪里呢?所以,让我们定义一个函数:
int foo(int& x)
{
return x;
}
...
foo(a);
foo(b);
foo
打电话时发生了什么?即,当我们返回一个值时,我们将通过地址 whos in a
or去b
?
您的代码中发生的情况是,a
并且b
实际上是同一内存位置的别名。
因此
foo(a);
和
foo(b);
实际上是相同的。
http://www.cplusplus.com/doc/tutorial/pointers/
阅读更多信息,cplusplus.com 文章中的内容通常非常详细