Foxtable(狐表)用户栏目专家坐堂 → 数组赋值给数组后数值发生变化


  共有2772人关注过本帖树形打印复制链接

主题:数组赋值给数组后数值发生变化

帅哥哟,离线,有人找我吗?
zpsun2003
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:130 积分:1256 威望:0 精华:0 注册:2018/4/19 21:34:00
数组赋值给数组后数值发生变化  发帖心情 Post By: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呢

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109720 积分:558310 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/19 10:55:00 [只看该作者]

数组都是引用类型,不是值类型。s2=s1赋值后其实2个数组是同一个对象的引用

 回到顶部
帅哥哟,离线,有人找我吗?
zpsun2003
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:130 积分:1256 威望:0 精华:0 注册:2018/4/19 21:34:00
  发帖心情 Post By: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))
老师,除了我这样改,还有没有更好的方法或计算效率更高一些

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109720 积分:558310 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/19 11:13:00 [只看该作者]

只能这样了

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

 回到顶部
帅哥哟,离线,有人找我吗?
zpsun2003
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:130 积分:1256 威望:0 精华:0 注册:2018/4/19 21:34:00
  发帖心情 Post By:2021/2/19 11:24:00 [只看该作者]

好的,谢谢


 回到顶部