|
もう何年もやっていないので はっきりした記憶ではないですが、
Fortranは、このパラメータ渡しが参照渡しでした。
つまり、値渡しという概念がありませんでした。
が
call aaa(val(b))
と変数bをVal関数(ここがうろ覚え)で囲むことで値渡しで渡すことができました。
つまり、呼び出す側がパラメータの渡し方を指定していたのです。
参照渡しだけの仕様ですから、呼び出し先でパラメータがどのように使われるのか
心配だったのでしょうかねえ?
値を壊されたては、堪らない ということで値渡しの選択が出来たのでしょうか?
こんなことを考えていたら、VBAだって、一部の例外はありますが、
Option Explicit
Sub test()
Dim a As Long
Dim ans As Long
a = 5
足し算2を足す a, ans
MsgBox ans
a = 7
足し算2を足す a, (ans)
MsgBox ans
End Sub
'===========================================================
Sub 足し算2を足す(ByRef 数 As Long, ByRef 答え As Long)
答え = 数 + 2
End Sub
このように呼び出されるプロシジャーでは、引数を参照渡しにして、
呼び出す側で (a) や a という記述で
値渡しと 参照渡しを使い分けることができます。
これでいくつも実験してみて、
パラメータ渡しがどちらがよいか試してみては いかがですか?
|
|