ホームページ >よくある問題 >値による受け渡しとアドレスによる受け渡しの違いは何ですか?

値による受け渡しとアドレスによる受け渡しの違いは何ですか?

coldplay.xixi
coldplay.xixiオリジナル
2021-02-25 11:32:2015061ブラウズ

値渡しとアドレス渡しの違い: 1. 値渡しでは、関数パラメータがスタックにプッシュされ、変更は元の変数ではなくコピーに適用されます。2.値渡し スタックのアドレスにプッシュされるのはポインタ変数のコピーで、ポインタに対してポインタ演算を実行すると、その値は元の変数を指します。

値による受け渡しとアドレスによる受け渡しの違いは何ですか?

#この記事の動作環境: Windows 7 システム、Dell G3 コンピューター。

値渡しとアドレス渡しの違い:

1. 値渡しでは、関数パラメータがスタックにプッシュされ、変更が行われます。コピーでは、元の変数には影響しません。

2. アドレス転送時にスタックにプッシュされるのはポインタ変数のコピーであり、ポインタを操作するとその値が元の変数を指しているため、元の変数が操作されます。

値による受け渡しとアドレスによる受け渡しの違いは何ですか?

拡張情報

パラメータを渡すには、値による受け渡し、アドレスによる受け渡し、および参照による受け渡しの 3 つの方法があります。

1. 値渡し

(1) 仮パラメータと実パラメータはそれぞれ独立した記憶領域を占有します。

(2) 仮パラメータの記憶領域は、関数の呼び出し時に割り当てられ、呼び出しが開始されると、システムは仮パラメータ用の一時記憶領域を開き、各実パラメータを仮パラメータに渡します。 . これは仮パラメータであり、実パラメータの値が取得されます。

2. アドレス転送

アドレス転送と値転送の違いは、実パラメータの格納アドレスを仮パラメータに転送するため、仮パラメータのポインタと実パラメータが同じになることです。ポインタは同じアドレスを指します。したがって、呼び出された関数の仮パラメータ ポインタが指すアドレスを変更すると、実際のパラメータに影響します。

3. 参照による受け渡し

参照による受け渡しはパラメーターとして参照を受け取り、これにより仮パラメーターに対するあらゆる操作で対応するデータを変更できるだけでなく、関数呼び出しも便利になります。参照渡しとは、仮パラメータ呼び出しの前に参照演算子「&」を追加することです。

参照は実パラメータのエイリアスです。実パラメータと同じ変数であれば値も同じになります。参照が変わると実パラメータも変わります。

関連する無料のおすすめ: プログラミング ビデオ コース

以上が値による受け渡しとアドレスによる受け渡しの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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