値によるポインターの受け渡しと参照によるポインターの受け渡し
関数にポインターを渡す場合、値による受け渡しと参照による受け渡しの違いを理解することが重要です。
この例では、関数 clickOnBubble が targetBubble の値を設定しようとしています。バブルベクトルに格納されたポインタへ。ただし、関数は targetBubble のコピーを関数に渡すだけなので、関数内でコピーに加えられた変更は元のポインターには反映されません。
Pointer-to による参照による受け渡し・Pointer
元のポインタを変更するには参照渡しする必要があります。これは、次のコードに示すように、ポインターツーポインターを使用して実行できます。
void foo(int **ptr) { *ptr = new int[10]; // Just for example, use RAII in a real-world application }
この例では、ptr はポインターへのポインターです。関数が呼び出されると、targetBubble のアドレスが関数に渡されます。この関数は、二重間接演算子 (**) を使用して、元の targetBubble ポインターにアクセスして変更できます。
Reference-to-Pointer による参照による受け渡し
Anotherポインターを参照によって渡す方法は、次のようにポインターへの参照を使用することです。 code:
void bar(int *&ptr) { ptr = new int[10]; }
ここで、ptr はポインタへの参照です。関数が呼び出されると、参照は targetBubble にバインドされます。その後、関数は参照を通じて targetBubble を直接変更できます。
以上がC のポインター: 値渡しと参照渡し - どちらを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。