IPA過去問ドリル

平成24年度 春期 基本情報技術者試験 午前 問49

テクノロジ/開発技術

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

出典:平成24年度 春期 基本情報技術者試験 午前 問49

正解:ア

解説

値呼出し(call by value)は,引数として渡した変数の値のコピーがサブルーチンに渡される方式です。サブルーチン内でその値が変更されても,呼び出し元の変数自体には影響が及ばないため,実行後に元の変数の値が変更されないことが保証されます。これに対して参照呼出しなどは,変数そのもの(アドレス)を渡すため,サブルーチン内での変更が呼び出し元にも反映されます。

選択肢ごとの解説

  • 正しい。値呼出しでは変数の値のコピーが渡されるため,サブルーチン内でどのように処理されても呼び出し元の変数の値は変更されません。
  • 誤り。結果呼出しは,サブルーチン終了時に処理結果を呼び出し元の変数に書き戻す方式であり,実行後に変数の値が変更されることを前提とした方式です。
  • 誤り。参照呼出しは変数そのもの(アドレス)を渡す方式であり,サブルーチン内での変更が呼び出し元の変数にもそのまま反映されます。
  • 誤り。名前呼出しは,引数の式そのものを渡し呼び出された側で評価する方式であり,参照される変数が変更されると値が変わり得るため,変更されないことは保証されません。
基本情報技術者の過去問を演習モードで解く