按值傳遞指標與按引用傳遞指標
將指標傳遞給函數時,了解按值傳遞和按引用傳遞之間的區別非常重要透過引用傳遞。
在提供的範例中,函數 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中文網其他相關文章!