プログラム

値渡しとは

2021年7月10日

値渡し

値渡しとは

関数への引数の渡し方には「値渡し」と「参照渡し」があります。値渡し(英:call by value)とは、変数の値(実体)をコピーして渡す方法です。

変数の値をコピーして渡すため、関数内で引数の値を変更しても、呼び出し元の変数に影響を及ぼすことはありません。

チェック

  • 値渡し:変数の値(実体)をコピーして渡す方法
  • 参照渡し:変数のメモリ番地(メモリ上の位置)を渡す方法

値渡しの流れ

例えば、次のような「関数A」があるとします。「関数A」には「引数」があり、「関数A」を呼び出すときは引数を指定します。

関数の呼び出し

それでは、上記の関数を例に"値渡し"の流れを説明していきます。

変数の実体はメモリ上で管理されている

呼び出し元「変数A」の実体はメモリ上で管理されています。

変数の実体

"値渡し"で関数を呼び出すと、メモリ上の実体もコピーされる

この「変数A」を"値渡し"で「関数A」に渡すと、「変数A」の値をコピーして「関数A」に渡します。そして、メモリ上の実体もコピーします。

値渡しの例

結果、呼び出し元の「変数A」と呼び出された関数の「引数A」は異なる実体を参照しています。

そのため、関数内で「引数A」の値を変更しても、呼び出し元の「変数A」に影響を及ぼすことはありません。

"値渡し"は、完全にコピーして渡す方法です。

helpful