首页 >后端开发 >C++ >C 中的指针:按值传递与按引用传递 — 我应该使用哪个?

C 中的指针:按值传递与按引用传递 — 我应该使用哪个?

Barbara Streisand
Barbara Streisand原创
2024-12-30 09:53:09547浏览

Pointers in C  : Pass by Value vs. Pass by Reference—Which Should I Use?

按值传递指针与按引用传递指针

将指针传递给函数时,了解按值传递和按引用传递之间的区别非常重要通过引用传递。

在提供的示例中,函数 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn