値呼出しと参照呼出し
出典: 平成28年度 春期 応用情報技術者試験 午前 問20 (IPA)
メインプログラムを実行した後,メインプログラムの変数 X,Y の値は幾つになるか。ここで,仮引数 X は値呼出し(call by value),仮引数 Y は参照呼出し(call by reference)であるとする。
選択肢の表の列: X,Y

- ア X: 2, Y: 4
- イ X: 2, Y: 6
- ウ X: 4, Y: 2
- エ X: 4, Y: 6
正解と解説を見る
正解: イ
- ア: Y は参照呼出しなので、手続の中で計算された 6 がメインの Y に反映されます。
- イ: X は値呼出しで 2 のまま、Y は参照呼出しで 6 になるので正しい答えです。
- ウ: X は値呼出しなので、手続の中で 4 になってもメインの X は変わりません。また Y は 6 になります。
- エ: X は値呼出しなので、メインの X は 2 のままです。
ポイント
- 値呼出し: 値のコピーを渡すので、手続の中で変えても 呼出し元の変数は変わりません。
- 参照呼出し: 変数そのもの (の場所) を渡すので、手続の中で変えると 呼出し元の変数も変わります。
- 手続の中で X = 2 + 2 = 4 (手続の中のコピーだけが 4 になる)
- Y = 4 + 2 = 6 (参照呼出しなので、メインの Y も 6 になる)
- メインの X は値呼出しなので 2 のまま です。