令和3年度 春期 システムアーキテクト試験 午前Ⅱ 問8
テクノロジ/開発技術サブルーチンへの引数の受渡し方のうち,引数として渡した変数の値が,サブルーチンの実行後に変更されないことが保証されているものはどれか。
出典:令和3年度 春期 システムアーキテクト試験 午前Ⅱ 問8
- ア値呼出し
- イ結果呼出し
- ウ参照呼出し
- エ名前呼出し
正解:ア
解説
値呼出し(call by value)は,実引数の値をコピーして仮引数に渡す方式です。サブルーチン内で仮引数の値を変更しても,コピー元である実引数(呼び出し元の変数)の値には影響がないため,引数として渡した変数の値がサブルーチンの実行後に変更されないことが保証されます。
選択肢ごとの解説
- ア正しい。値呼出しでは実引数の値のコピーが渡されるため,サブルーチンの実行後に元の変数の値が変更されないことが保証されます。
- イ誤り。結果呼出し(call by result)は,サブルーチンの実行結果を終了時に実引数へ書き戻す方式であり,変数の値は変更されます。
- ウ誤り。参照呼出し(call by reference)は,変数のアドレス(参照)を渡す方式であり,サブルーチン内での変更が呼び出し元の変数にも反映されます。
- エ誤り。名前呼出し(call by name)は,引数の式をそのまま渡し,使用時に評価する方式であり,変更が呼び出し元に反映される場合があります。