C では、関数のスコープ外で実際の値を変更する場合、参照またはポインターによって関数に引数を渡すのが一般的です。 。ただし、どちらをいつ使用するかを理解すると、混乱する可能性があります。
参照による受け渡し
参照による受け渡しを使用すると、元の変数に直接アクセスして変更できます。これは次の場合に役立ちます。
ポインターによる受け渡し
ポインターによる受け渡しは、ポインターを介して変数に間接的にアクセスします。これは次の場合に必要です。
グッド プラクティス
一般的なガイドラインとして、次の使用をお勧めします。
次の場合にポインターを使用します。
例
次のスニペットは、参照を使用してラージ オブジェクトを渡す一般的なシナリオを示しています。
void foo(std::string& s) { s += "suffix"; }
この場合、関数が新しい文字列オブジェクトを作成する必要がある場合は、ポインタによる受け渡しが適しています。
void foo(std::string* s) { *s = "new string"; // Deallocates the old string }
まれに、値による受け渡しも適切な場合があります。小さな不変オブジェクト (プリミティブ型など) をコピーする場合と同様に、問題になりません。
以上がC で参照とポインタを使用する必要があるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。