【发布时间】:2011-10-06 17:05:15
【问题描述】:
foo(int &bar)
{
bar = 5;
}
对这个函数的调用是
int foobar = 2;
foo(foobar);
我是否认为函数参数本质上是“获取”变量的内存地址,但不必在 foo 中取消引用,并且我会更改 foobar 的原始值?在此之前,我的印象是你必须像这样传递一个内存地址:
foo(&foobar);
然后像这样使用 foo 中的变量:
*bar = 5;
我认为这是错误的吗?我认为,像很多初学者一样,困惑来自于认为引用就像一个指针,因为它持有一个内存地址,但它从来都不是真正的类型,不是吗?只是一个运算符。
【问题讨论】:
-
foo(&bar){}不是正确的 C++ 函数定义。 -
不完全是,我不是对传递指针和作为引用传递之间的区别感到困惑,而是你如何使用“引用变量”可以这么说。
标签: c++