Variable Parameter (Pass by Reference) ☆
When a variable is passed to a subprogram, the parameter is made to point to the same location in the memory as that of the argument.
Therefore, if the argument passed to a subprogram is a variable, when the parameter is changed, the argument also changes.
Example.
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
If you want the argument not to be changed, write it in parenthesis as follows.
130 CALL exchange((a),(b))
Note.
On function definitions, parameters are placed at different location of the arguments. Thus any function definition does not change arguments.