``

前頁 メニュー 次頁

    変数引数（参照渡し）  ☆

      副プログラムの実引数に変数を書いたとき，仮引数は実引数と同じ記憶場所を指す。
      従って，副プログラム内で仮引数の値を変更すると，CALL文の実行後，実引数の値も変更される。

    例
    100  DECLARE EXTERNAL SUB exchange
    110  LET a=1
    120  LET b=2
    130  CALL exchange(a,b)
    140  PRINT a,b
    150  END
    200  EXTERNAL SUB exchange(x,y)
    210  LET t=x
    220  LET x=y
    230  LET y=t
    240  END SUB

引数が変更されないようにしたいときは，引数を括弧で括るなどして変数として解釈されないようにする。
例 130 CALL exchange((a),(b))
◇関数定義では，仮引数の記憶場所は必ず実引数と別の場所に取られる。したがって，関数定義では実引数に変数を書いても値が変更されることはない。