C でのポインタ引数の受け渡し: 値渡しか参照渡し?
C では、ポインタを渡すのはよくある誤解です。 argument は値渡しと同等です。ただし、これは当てはまりません。
ポインタは値によって渡されます
ポインタが関数に渡されるとき、関数の 値ポインタ、つまりポインタが指すメモリ アドレスが関数のローカル メモリにコピーされます。これは、関数内でポインタに加えられた変更は元のポインタ変数には影響しませんことを意味します。
ポイント先の値の変更
ただし、ポインタが指す値に加えられた変更は元の変数に反映されます。これは、ポインタ自体がオブジェクトそのものではなく、元のオブジェクトのアドレスを格納するためです。
ポインタ値の変更
内のポインタ値を変更したい場合は、関数の場合は、ポインターへのポインターを使用する必要があります。ポインタをポインタに渡すと、元のポインタのアドレスが関数にコピーされます。これにより、関数内から元のポインタを変更できるようになります。
標準的な方法
C では、ポインタからポインタへのポインタを次のように使用することが許容され、標準的な方法とみなされます。関数内のポインター値を変更する必要がある場合の引数。参照は C の後のバージョンまで導入されなかったため、これは C と C で一般的な手法です。
参照とポインタ
最新の C では、参照が優先されます。いくつかの理由でポインタを使用しません:
ただし、参照は C ではサポートされていません。値渡しルールに違反します。
以上がC 関数のポインター: 値渡しか参照渡しか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。