値渡し
値渡しとは
関数への引数の渡し方には「値渡し」と「参照渡し」があります。値渡し(英:call by value)とは、変数の値(実体)をコピーして渡す方法です。
変数の値をコピーして渡すため、関数内で引数の値を変更しても、呼び出し元の変数に影響を及ぼすことはありません。
チェック
- 値渡し:変数の値(実体)をコピーして渡す方法
- 参照渡し:変数のメモリ番地(メモリ上の位置)を渡す方法
値渡しの流れ
例えば、次のような「関数A」があるとします。「関数A」には「引数」があり、「関数A」を呼び出すときは引数を指定します。
それでは、上記の関数を例に"値渡し"の流れを説明していきます。
変数の実体はメモリ上で管理されている
呼び出し元「変数A」の実体はメモリ上で管理されています。
"値渡し"で関数を呼び出すと、メモリ上の実体もコピーされる
この「変数A」を"値渡し"で「関数A」に渡すと、「変数A」の値をコピーして「関数A」に渡します。そして、メモリ上の実体もコピーします。
結果、呼び出し元の「変数A」と呼び出された関数の「引数A」は異なる実体を参照しています。
そのため、関数内で「引数A」の値を変更しても、呼び出し元の「変数A」に影響を及ぼすことはありません。
"値渡し"は、完全にコピーして渡す方法です。
helpful
この記事は役に立ちましたか?