IPA過去問ドリル

令和7年度 春期 システムアーキテクト試験 午前Ⅱ 問9

テクノロジ/開発技術

サブルーチンとの引数の受渡し方のうち,引数として渡した変数の値が,サブルーチンの実行後に変更されないことが保証されているものはどれか。

出典:令和7年度 春期 システムアーキテクト試験 午前Ⅱ 問9

正解:ア

解説

値呼出し(call by value)は,実引数の値をコピーして仮引数に渡す方式であり,サブルーチン内で仮引数の値を変更しても,呼出し元の実引数(変数)の値には影響しません。そのため,渡した変数の値がサブルーチンの実行後に変更されないことが保証されます。

選択肢ごとの解説

  • 正しい。値呼出しは実引数の値のコピーを渡すため,呼出し元の変数の値は変更されないことが保証されます。
  • 誤り。結果呼出し(call by result)は,サブルーチン内での仮引数の最終値を呼出し元の実引数に書き戻すため,変数の値は変更され得ます。
  • 誤り。参照呼出し(call by reference)は,実引数そのもの(のアドレス)を渡すため,サブルーチン内での変更が呼出し元の変数に反映されます。
  • 誤り。名前呼出し(call by name)は,実引数の式を評価せずそのまま仮引数として展開するため,呼出し元の変数が変更されることがあります。
システムアーキテクトの過去問を演習モードで解く