アルゴリズム・プログラミング比較問題
値渡し(call by value)と参照渡し(call by reference)の引数の扱いの違いとして正しいものはどれか。
A.値渡しでは呼び出し元の変数の値が関数内の変更によって書き換えられ、参照渡しでは書き換えられない
✗ 値渡しと参照渡しの説明が逆です。値渡しは呼び出し元に影響せず、参照渡しは影響します。
B.値渡しでは引数の値のコピーが関数に渡されるため呼び出し元の変数は変更されず、参照渡しではメモリアドレスが渡されるため呼び出し元の変数が変更される← 正解
✓ 正解です。値渡しは値のコピーを渡すため呼び出し元は変更されませんが、参照渡しはアドレスを渡すため関数内の変更が呼び出し元に反映されます。
C.値渡しも参照渡しも、関数内で引数を変更すると呼び出し元の変数が必ず変更される
✗ 値渡しの場合、関数内で引数を変更しても呼び出し元の変数は変更されません。
D.値渡しと参照渡しの違いは処理速度のみであり、どちらも呼び出し元の変数に影響しない
✗ 値渡しと参照渡しの違いは処理速度だけでなく、呼び出し元の変数への影響という本質的な差異があります。