ホームページ  >  記事  >  バックエンド開発  >  Call-by-Value パラメータを変更しても元の変数が変更されないのはなぜですか?

Call-by-Value パラメータを変更しても元の変数が変更されないのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-12 04:15:02507ブラウズ

Why Does Modifying a Call-by-Value Parameter Not Change the Original Variable?

値による呼び出しのパラメータ変更について

指定された値による呼び出しの例では、関数changeValueが定義され、次のように呼び出されます。整数の引数値は最初は 5 に設定されています。関数内で値を 6 に変更しても、メイン関数で出力されるときは 5 のままです。

この動作は、引数を値で渡すという概念で説明できます。デフォルトでは、 C/C では通常、関数の引数は値によって渡されます。パラメーターが値によって渡されると、元の変数のコピーが作成され、呼び出された関数内で使用されます。コピーに加えられた変更は、元の変数には影響しません。

提供されたコードでは、関数changeValueは値パラメーターをコピーとして受け取ります。したがって、関数内で値に加えられた変更はローカル コピーにのみ影響し、メインの元の変数には影響しません。その結果、値が main で出力されると、関数が値を変更しようとしても、値は 5 のままになります。

関数内から元の変数を変更するには、参照による呼び出しが必要です。パラメーターを参照として指定すると、元の変数への直接リンクが確立され、関数がその変数に対して直接操作できるようになります。これにより、関数内で行われた変更が main に戻ったときに元の変数に確実に反映されます。

以上がCall-by-Value パラメータを変更しても元の変数が変更されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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