平成24年度 春期 基本情報技術者試験 午前 問49
テクノロジ/開発技術サブルーチンへの引数の渡し方のうち,変数を引数として渡しても,サブルーチンの実行後に変数の値が変更されないことが保証されているものはどれか。
出典:平成24年度 春期 基本情報技術者試験 午前 問49
- ア値呼出し
- イ結果呼出し
- ウ参照呼出し
- エ名前呼出し
正解:ア
解説
値呼出し(call by value)は,引数として渡した変数の値のコピーがサブルーチンに渡される方式です。サブルーチン内でその値が変更されても,呼び出し元の変数自体には影響が及ばないため,実行後に元の変数の値が変更されないことが保証されます。これに対して参照呼出しなどは,変数そのもの(アドレス)を渡すため,サブルーチン内での変更が呼び出し元にも反映されます。
選択肢ごとの解説
- ア正しい。値呼出しでは変数の値のコピーが渡されるため,サブルーチン内でどのように処理されても呼び出し元の変数の値は変更されません。
- イ誤り。結果呼出しは,サブルーチン終了時に処理結果を呼び出し元の変数に書き戻す方式であり,実行後に変数の値が変更されることを前提とした方式です。
- ウ誤り。参照呼出しは変数そのもの(アドレス)を渡す方式であり,サブルーチン内での変更が呼び出し元の変数にもそのまま反映されます。
- エ誤り。名前呼出しは,引数の式そのものを渡し呼び出された側で評価する方式であり,参照される変数が変更されると値が変わり得るため,変更されないことは保証されません。