通过引用传递时的内存使用情况

Memory usage when passing by reference?

本文关键字:内存 用情 情况 引用      更新时间:2023-10-16

我有一个占用1MB内存的对象(即图像)。我将此图像传递给一个函数,该函数对其进行修改。如果我通过引用将此图像传递到函数中,会复制整个1MB,还是只复制它在内存中的位置?

不只是一个指针-引用只是一个语法奇特的指针,所以它不会吓到孩子。

通过引用传递为对象创建一个别名。唯一使用的内存是为保存别名而分配的堆栈空间。

只有对象的引用位置会传递到堆栈上。

我们在这里很清楚,这只适用于C++。在C中,您总是通过值传递。您可以通过传递指针位置来模拟逐引用传递(如果我没有弄错的话,C++中的引用就是这样工作的)。

通过引用传递时,不会复制对象,只复制对对象的引用。这就是通过引用传递的全部意义。

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