IPA公式正解:ア 値呼出し
※ 正解はIPA公表の解答です。解説は当サイトが生成AIを用いて作成しています。誤りにお気づきの場合はお問い合わせください。
【解説】正解は選択肢【ア】です。値呼出し(Call by Value)は、実引数の値のコピーを仮引数に渡す方式です。サブルーチン内での仮引数に対する代入や変更は呼び出し元の実引数には一切影響を及ぼさないため、サブルーチン実行後に渡した変数の値が変更されないことが保証されます。
【詳細解説】■ 本問の核心・解法のポイント
サブルーチン(関数・プロシージャ)に対する引数渡しメカニズム(評価戦略)の違いと、副作用の有無を正確に理解しているかを問う問題です。呼び出し元の変数を保護するためには、メモリ上の実体を共有せず値を複製して渡す方式を選択する必要があります。
・各選択肢の徹底解説:
・ア【選択肢ア★】:正解です。値呼出し(Call by Value)では、呼び出し側が保持する実引数の「値の複製」が仮引数として渡されます。そのため、サブルーチン内部で仮引数の値を書き換えても呼び出し元の実引数は不変であることが保証されます。
・イ:結果呼出し(Call by Result)は、サブルーチン終了時に仮引数の最終値を実引数に書き戻す方式です。したがって、サブルーチンの実行によって実引数の値が変更されます。
・ウ:参照呼出し(Call by Reference)は、実引数が格納されているメモリのアドレス(参照)を渡す方式です。サブルーチン内で仮引数を変更すると、実引数の値も直接変更されます。
・エ:名前呼出し(Call by Name)は、仮引数の出現箇所を実引数のテキストで置き換えて評価する方式です(マクロ展開に近い)。実引数が変数の場合、代入によって値が書き換わる可能性があります。
よって正解はアです。