この参照渡しってのはDEFの引数として渡すときも起ります。 DEF FUNC A A=A+1 END VAR A FUNC A とやってもAは書き換わりませんが、 DEF FILLM A[] VAR I FOR I=0 TO LEN(A)-1 A[i]=-1 NEXT I END DIM A[10] FILL0 A とやると Aの中身が書き換わります。 これは前のやつは変数の中身のコピーを渡してて(値渡しと言います)後者は配列の住所を渡してるからです。
こういち2018/1/23 21:14 ネタバレ◆ou0jbJnEJ0Kb
この参照渡しは配列のソートとかに役に立ちます。(標準のSORTで良いと言われればその通りですが) DEF _SORT a[],f,l IF a[f]>a[l] THEN VAR TMP=a[f] a[f]=a[l] a[l]=TMP ENDIF VAR M%=(l-f+1)/3 _SORT a,f,l-M% _SORT a,f+M%,l _SORT a,f,l-M% END