通过引用传递内存使用情况?

时间:2012-01-19 17:26:19

标签: c++

我有一个占用1MB内存的对象(即图像)。 我将此图像传递给一个修改它的函数。 如果我通过引用将此图像传递给函数,是否会复制整个1MB,或仅将其放在内存中?

5 个答案:

答案 0 :(得分:11)

不只是一个指针 - 引用只是一个带有花哨语法的指针,所以它不会吓到孩子。

答案 1 :(得分:6)

按引用传递会为对象创建别名。使用的唯一内存是分配用于保存别名的堆栈空间。

答案 2 :(得分:2)

只是对象的引用位置将被传递到堆栈。

我们在这里很清楚,这仅适用于C ++。在C中,您总是按值传递。您可以通过传入指针位置来模仿传递引用(如果我没有弄错的话,无论如何,这都是C ++中的引用工作方式)。

答案 3 :(得分:2)

通过引用传递时,不要复制对象,只复制对象的引用。这是通过引用传递的全部内容。

答案 4 :(得分:1)

只是对图像对象的引用被发送到函数,而不是整个图像。