ホームページ >バックエンド開発 >C++ >C 関数のポインター: 値渡しか参照渡しか?

C 関数のポインター: 値渡しか参照渡しか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-30 21:20:11461ブラウズ

Pointers in C   Functions: Pass by Value or Reference?

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

C では、ポインタを渡すのはよくある誤解です。 argument は値渡しと同等です。ただし、これは当てはまりません。

ポインタは値によって渡されます

ポインタが関数に渡されるとき、関数の ポインタ、つまりポインタが指すメモリ アドレスが関数のローカル メモリにコピーされます。これは、関数内でポインタに加えられた変更は元のポインタ変数には影響しませんことを意味します。

ポイント先の値の変更

ただし、ポインタが指す値に加えられた変更は元の変数に反映されます。これは、ポインタ自体がオブジェクトそのものではなく、元のオブジェクトのアドレスを格納するためです。

ポインタ値の変更

内のポインタ値を変更したい場合は、関数の場合は、ポインターへのポインターを使用する必要があります。ポインタをポインタに渡すと、元のポインタのアドレスが関数にコピーされます。これにより、関数内から元のポインタを変更できるようになります。

標準的な方法

C では、ポインタからポインタへのポインタを次のように使用することが許容され、標準的な方法とみなされます。関数内のポインター値を変更する必要がある場合の引数。参照は C の後のバージョンまで導入されなかったため、これは C と C で一般的な手法です。

参照とポインタ

最新の C では、参照が優先されます。いくつかの理由でポインタを使用しません:

  • 構文が少ないノイズ
  • コンパイラに関する詳細情報
  • ポインタからポインタへの特定のケースでは、参照によってコードが簡素化されます。

ただし、参照は C ではサポートされていません。値渡しルールに違反します。

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

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