我们有声明:
...
int a= 5;
int& b= a;
...
我不明白,a
和b
之间有什么区别。我认为,a
和b
只是地址。但这个地址在记忆中的位置在哪里?所以,让我们定义一个函数:
int foo(int& x)
{
return x;
}
...
foo(a);
foo(b);
foo
正在通话时发生了什么?即当我们返回a
或b
中的地址时我们要去的值?
答案 0 :(得分:4)
代码中发生的情况是a
和b
对于相同的内存位置实际上是别名。
因此
foo(a);
和
foo(b);
实际上是相同的。
答案 1 :(得分:1)
http://www.cplusplus.com/doc/tutorial/pointers/
了解更多信息,cplusplus.com文章中的内容通常非常详细