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

0 c++ pointers

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

eru*_*orm 5

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

table t;
function( t );
t = maketable();
Run Code Online (Sandbox Code Playgroud)

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

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

table some_table;
table* paper_containing_address = &some_table;
function( paper_containing_address );
paper_containing_address = maketable();
Run Code Online (Sandbox Code Playgroud)

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

希望这可以帮助.