以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  数组赋值给数组后数值发生变化  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=160728)

--  作者:zpsun2003
--  发布时间:2021/2/19 10:46:00
--  数组赋值给数组后数值发生变化
Dim s1() As Double = {1,2,3}
Dim s2(2) As Double
s2=s1
s1(0)=5
Output.Show(s2(0))
最后输出的结果为什么不是1,是5呢

--  作者:有点蓝
--  发布时间:2021/2/19 10:55:00
--  
数组都是引用类型,不是值类型。s2=s1赋值后其实2个数组是同一个对象的引用
--  作者:zpsun2003
--  发布时间:2021/2/19 11:08:00
--  
Dim s1() As Double = {1,2,3}
Dim s2(2) As Double
for i as integer = 0 to s1.length
s2(i)=s1(i)
next
s1(0)=5
Output.Show(s2(0))
老师,除了我这样改,还有没有更好的方法或计算效率更高一些

--  作者:有点蓝
--  发布时间:2021/2/19 11:13:00
--  
只能这样了

注意索引
for i as integer = 0 to s1.length - 1

--  作者:zpsun2003
--  发布时间:2021/2/19 11:24:00
--  
好的,谢谢