前頁  メニュー  次頁


変数引数(参照渡し)  ☆

  副プログラムの実引数に変数を書いたとき,仮引数は実引数と同じ記憶場所を指す。
  従って,副プログラム内で仮引数の値を変更すると,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))

◇関数定義では,仮引数の記憶場所は必ず実引数と別の場所に取られる。したがって,関数定義では実引数に変数を書いても値が変更されることはない。