IPA過去問ドリル

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

テクノロジ/開発技術

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

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

正解:ア

解説

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

選択肢ごとの解説

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