令和7年度 春期 午前Ⅱ 問9
ソフトウェア開発管理技術
サブルーチンとの引数の受渡し方のうち,引数として渡した変数の値が,サブルーチンの実行後に変更されないことが保証されているものはどれか。
- ア値呼出し
- イ結果呼出し
- ウ参照呼出し
- エ名前呼出し
答えと解説を見る
✓ これが正解ア値呼出し
解説
値のコピーを渡す値呼出しなら、元の変数は書き換わりません。
値呼出しでは、呼び出す側の変数の値をコピーしてサブルーチンに渡します。サブルーチンが受け取るのはコピーなので、サブルーチンの中で仮引数の値をどう変えても、呼び出した側の変数には影響しません。そのため、引数として渡した変数の値がサブルーチンの実行後も変わらないことが保証されます。見分ける軸は、サブルーチンでの変更が呼び出した側の変数に伝わる経路があるかどうかです。変数の場所を渡す方式や、終了時に結果を書き戻す方式、式を名前のまま渡して使うたびに評価する方式は、いずれも呼び出し側の変数が書き換わる可能性を残します。コピーを渡すから元は無事、と覚えると選べます。
ほかの選択肢はなぜ違うのか
- イ結果呼出し:結果呼出しは、サブルーチンの終了時に、仮引数の値を呼び出した側の変数へ書き戻す方式です。結果を返すための受渡し方なので、渡した変数の値は実行後に変わることがあり、変わらない保証はありません。
- ウ参照呼出し:参照呼出しは、変数の値ではなく変数の場所を渡す方式です。サブルーチンの中で仮引数を書き換えると、呼び出した側の変数そのものが書き換わるので、実行後に値が変わらないとは言えません。
- エ名前呼出し:名前呼出しは、引数の式を名前のまま渡し、サブルーチンの中で使うたびにその場で評価する方式です。変数を渡せば中での代入がその変数に及ぶため、実行後に値が変わらないことは保証されません。
出典:令和7年度 春期 システムアーキテクト試験 午前Ⅱ 問9
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)