以下是引用吹水佬在2022-12-30 10:56:31的发言:
DO...WITH...默认是传址,而PARAMETERS又是私有的。
是不是常量与变量的问题,常量通常是不变的,当常量地址 -> 变量地址时,又出现同一个变量地址 -> 另一个变量地址,此时会不会出现地址冲突出现异常?
测试:
WITH ... PARAMETERS
常量 ... 变量A
常量 ... 变量B
正常
变量 ... 变量A
变量 ... 变量B
正常
常量 ... 变量A
变量A... 变量B
异常
斑竹说的没错,主要区别是 do sub with
c1,b1,c1 是传地址,与sub()不同,但与 sun(@c1,@b1,@c1)相同
大家口算一下,最后x1,a1,b1,c1是多少
CLEAR
x1=10
a1=2
b1=3
c1=5
DO sub WITH c1,b1,c1
?" x1=",x1," ,a1=",a1," ,b1=",b1," ,c1=",c1
PROCEDURE sub
PARAMETERS b1,a1,c1
b1=b1+1
a1=a1+2
RETURN
ENDPROC