次の手続 add を考える。ここで、仮引数 X は値呼出し(call by value)、 仮引数 Y は参照呼出し(call by reference)であるとする。 主プログラムを実行した後、主プログラムの変数 X,Y の値はどうなるか。 主プログラム 手続 add (X,Y) X := 2; X := X + Y; Y := 2; Y := X + Y; add(X,Y); return; ┌───┬───┐ │ X │ Y │ ┌─┼───┼───┤ │ア│ 2 │ 2 │ │イ│ 2 │ 6 │ │ウ│ 4 │ 2 │ │エ│ 4 │ 6 │ └─┴───┴───┘