首页 新闻 会员 周边 捐助

是因为地址赋值吗。。?

0
悬赏园豆:5 [已解决问题] 解决于 2018-07-04 10:53

var a = 1;

var b = a;

b = 2;

so

a == 2 ?

是因为地址原因嘛?

这可叫我如何是好

各位大神有没有非地址赋值的方法呢。。?

问题补充:

介于小伙伴们都不太相信。。我给大家看看我的代码。。会不会是我代码的问题。。

临冰听雪丶的主页 临冰听雪丶 | 初学一级 | 园豆:175
提问于:2018-07-03 18:25

用的什么编程语言?

dudu 6年前

@dudu: C#

临冰听雪丶 6年前
< >
分享
最佳答案
0

厉害了,a和b居然耦合了

收获园豆:5
名字不好起啊 | 菜鸟二级 |园豆:401 | 2018-07-04 10:01

很是头疼 

临冰听雪丶 | 园豆:175 (初学一级) | 2018-07-04 10:30

@临冰听雪丶: 基本数据类型的存储不会涉及到引用存储地址。。。你是不是哪搞错了?
如果你觉得是地址问题,你可以试试 b = a 的时候,把 a 转成 json 再转回去看看,会不会耦合了

名字不好起啊 | 园豆:401 (菜鸟二级) | 2018-07-04 10:34

@名字不好起啊: 我用您说的方式解决问题了。。。但是我有些不太懂。。您说的耦合,是什么意思,能大概给我讲讲嘛。。?

临冰听雪丶 | 园豆:175 (初学一级) | 2018-07-04 10:43

@临冰听雪丶: 你说的这种情况 b = a ,如果 a 是基础类型,那么 b 会直接被赋值 a 的值。
如果a是引用类型,那么此时执行 b = a ,会将 a 引用值的地址赋给 b,这样 a 和 b 就会同时关联到一个地址,就相当于通过两个入口获取一个地址的值,如果你通过任何一个入口修改了值,那么从另一个入口获取时,就会是你修改的新值。一般来说代码要避免这种两个变量引用一个地址的情况,因为会造成很多麻烦。所以赋值要相互独立,避免耦合。这些是我的理解,具体的可以去查些资料。

名字不好起啊 | 园豆:401 (菜鸟二级) | 2018-07-04 10:51

@名字不好起啊: 噢。。。好嘞,谢谢啦,嘿嘿

临冰听雪丶 | 园豆:175 (初学一级) | 2018-07-04 10:53
其他回答(5)
0

a还是1啊(在js试了)

让我发会呆 | 园豆:2929 (老鸟四级) | 2018-07-03 19:22

我用的是C#

支持(0) 反对(0) 临冰听雪丶 | 园豆:175 (初学一级) | 2018-07-04 10:29
0

如果有一个语言这么搞了.并且没有在入门教材里说明.

那说明你现在用的编译器有bug

吴瑞祥 | 园豆:29449 (高人七级) | 2018-07-03 21:40

vs。。。 

支持(0) 反对(0) 临冰听雪丶 | 园豆:175 (初学一级) | 2018-07-04 10:29

@临冰听雪丶: 你是不是没学过C?

并且C#也没看过入门语法书?

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2018-07-04 16:47

@吴瑞祥: 嗯。。都没有。。。

支持(0) 反对(0) 临冰听雪丶 | 园豆:175 (初学一级) | 2018-07-04 17:35

@临冰听雪丶: 淘宝买一本吧.二手9块8包邮.

你至少吧这门语言的语法书看完.

基础不好的话.会有很多这种看起来很莫名其妙的问题.会浪费你很多人生的.不单是浪费回答你问题的人的.

你自己也会被自己浪费掉很多很多没有意义的时间.

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2018-07-04 19:19
0

兄弟,a=1

小光 | 园豆:1766 (小虾三级) | 2018-07-04 09:07

大兄弟,真的不是1.。 

支持(1) 反对(0) 临冰听雪丶 | 园豆:175 (初学一级) | 2018-07-04 10:29
0

兄弟,什么语言啊??

华临天下 | 园豆:1501 (小虾三级) | 2018-07-04 09:51

C# 

支持(0) 反对(0) 临冰听雪丶 | 园豆:175 (初学一级) | 2018-07-04 10:30

@临冰听雪丶: 会不会哪边又用到了赋值语句?

支持(0) 反对(0) 华临天下 | 园豆:1501 (小虾三级) | 2018-07-04 10:37

@华临天下: 没有了,在给jsonData赋值后,result就没有再用到了

支持(0) 反对(0) 临冰听雪丶 | 园豆:175 (初学一级) | 2018-07-04 10:39
0

var a = 1;
var b = a;
b = 2;
so
a = 1;没毛病;
你截图里面是对引用类型操作,存储的是地址

、熙和 | 园豆:1508 (小虾三级) | 2018-07-04 10:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册