我来自C,并且我已经了解到,如果我们将一个参数传递给一个函数,它只会使用它的值来复制它,所以如果我们改变这个变量值,那么变量传递给函数的内容不会改变,因为它们显然是2个不同的变量,只有2个不同的地址具有相同的值。 所以在C中,如果我们想要改变传递给函数的参数,我们会传递一个带参数地址的指针。现在通过引用和指针传递参数
,在C++中,我们可以做同样的,但我们也可以这样做:
void changeValue(int& n)
{
n = 10;
}
不仅如此,我们还没有取消引用分配一个值,但是,当我们传递变量到函数我们按原样传递它(&)运算符。 所以我不明白这里有什么区别? 如果我们不去引用它甚至是一个指针?另外,如果我们按照原样传递它,那么我们是如何通过引用来传递的呢? 有人可以帮我清理一些东西吗?
与什么有什么不同?函数签名表示参数是通过引用传递的,所以它是。 – juanchopanza 2014-09-22 15:14:15
这个线程有帮助吗? http://stackoverflow.com/questions/410593/pass-by-reference-value-in-c – taocp 2014-09-22 15:14:44
简单的答案是'C'只有传递值,而C++有传递值和传递-引用。所以你应该学习后者,因为这个概念在'C'中不存在。此外,试图通过使用'C'作为指导来学习C++ - 这可能适用于某些事情,但是如果这个概念根本不存在于'C'中(例如传递引用),那么,就像现在的情况一样,我会感到困惑。 – PaulMcKenzie 2014-09-22 15:26:03