首頁 > 後端開發 > C++ > C 中的指標:按值傳遞與按引用傳遞 — 我應該使用哪一個?

C 中的指標:按值傳遞與按引用傳遞 — 我應該使用哪一個?

Barbara Streisand
發布: 2024-12-30 09:53:09
原創
537 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板