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