按值传递指针与按引用传递指针
将指针传递给函数时,了解按值传递和按引用传递之间的区别非常重要通过引用传递。
在提供的示例中,函数 clickOnBubble 尝试将 targetBubble 的值设置为存储在 bubbles 向量中的指针。但是,该函数仅将 targetBubble 的副本传递给函数,因此函数内对副本所做的任何更改都不会反映在原始指针中。
通过指针传递引用-Pointer
要改变原来的指针,需要通过引用传递。这可以使用指针到指针来完成,如以下代码所示:
void foo(int **ptr) { *ptr = new int[10]; // Just for example, use RAII in a real-world application }
在此示例中,ptr 是指向指针的指针。当函数被调用时,targetBubble的地址被传递给函数。然后,该函数可以使用双重间接运算符 (**) 来访问和修改原始 targetBubble 指针。
通过引用传递引用到指针
另一个通过引用传递指针的方法是使用指针引用,如下所示代码:
void bar(int *&ptr) { ptr = new int[10]; }
这里,ptr 是对指针的引用。调用该函数时,引用将绑定到 targetBubble。然后该函数可以直接通过引用修改targetBubble。
以上是C 中的指针:按值传递与按引用传递 — 我应该使用哪个?的详细内容。更多信息请关注PHP中文网其他相关文章!