ホームページ >バックエンド開発 >C++ >ポインタは C でどのように渡されますか: 値または参照によって?

ポインタは C でどのように渡されますか: 値または参照によって?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-04 21:26:12891ブラウズ

How are Pointers Passed in C  : By Value or By Reference?

C でのポインタの受け渡し: 値渡しか参照渡し?

質問:

C で渡すときポインタ引数は値渡しとして動作しますか、それとも値渡しとして動作しますかReference?

答え:

C ではポインタは値によって渡されます。つまり、ポイントされたオブジェクトのアドレスが関数パラメータにコピーされます。これは 2 つのシナリオを意味します:

  • 関数内のポインター変数 (アドレス) への変更は、外部ポインターには反映されません。
  • ただし、ポインターの逆参照 (変更) によって行われた変更は、

Pointer to Pointer渡し:

ポインター値自体を変更する (別のオブジェクトを指す) ことが目的の場合は、ポインターからポインターが必要です。これは、関数にポインターを渡すときにポインター名の前に 2 つのアンパサンド (&&) を使用することで実現されます。この方法は C の標準的な方法です。

参照とポインタ:

C では、いくつかの理由からポインタよりも参照が優先されます。

の利点参考:

  • 関数本体の構文ノイズの削減
  • 最適化を可能にする、より多くの情報がコンパイラーに提供される

欠点参照:

  • C の値渡しルールを破り、パラメータの動作にさらに注意が必要です
  • C ではサポートされていません

特定のケース: ポインタからポインタと参照

ポインター間の受け渡しの場合、参照を使用する場合との主な違いは単純さです。外部ポインターへの参照を渡すことで、両方のレベルの間接化を排除でき、より単純なアプローチが提供されます。

以上がポインタは C でどのように渡されますか: 値または参照によって?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。