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

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

Linda Hamilton
リリース: 2024-12-04 21:26:12
オリジナル
886 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート