c ++中的指针如何帮助节省内存?

时间:2010-07-10 19:17:00

标签: c++ pointers

C ++中的指针如何帮助节省内存?

1 个答案:

答案 0 :(得分:5)

通常,“指针”和“保存内存”用于讨论传递引用和传值。传递一个值可以被比喻地描述为来回交换一个对象,就像一张桌子。每次返回表对象或传递表对象时,系统都必须为该表执行精确的副本以供其他函数使用。该副本占用更多空间,因此“更多记忆”。

table t;
function( t );
t = maketable();

在上面,t被传递给function()之前被复制,并且maketable在其中创建了一个表,只是为了制作一个副本并将其交回来存储在t中。

通过引用传递类似于将指示传递到桌子周围,比如一张纸上写着“我房间一角的桌子”。当函数传递引用/指针时,它只需要复制一些小的东西,因此“节省内存”。然后另一个功能可以访问“我房间一角”的“桌子”。这是字面上的英文翻译。例如:

table some_table;
table* paper_containing_address = &some_table;
function( paper_containing_address );
paper_containing_address = maketable();

在上面,存在“some_table”。然后将“地址”(&)“some_table”,即(“我房间一角的那个”)放入paper_containing_address中。然后,只需要将纸张传递给函数,而不是表格的整个副本。同样,maketable()可能会创建一个表,并返回它的位置,而不是必须复制整个表。

希望这有帮助。