标题:运行结果为啥是30而不是20,求解
只看楼主
别忘了当初
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2019-7-24
结帖率:100%
已结贴  问题点数:20 回复次数:8 
运行结果为啥是30而不是20,求解
         static void Main(string[] args)
        {
            int[] age1 = new int[] {10,20};
            int[] age2 = age1;
            age2[1] = 30;
            Console.WriteLine(age1[1]);


        }
运行结果为啥是30而不是20,求解
搜索更多相关主题的帖子: 运行 结果 int new WriteLine 
2019-08-14 09:44
南山剑客
Rank: 2
等 级:论坛游民
威 望:4
帖 子:51
专家分:60
注 册:2019-8-6
得分:7 
C#的数组,是按引用传递,
int[] age2 = age1;

可以理解为:age2就是aga1的一个别名,其实都是同一个数组。

我傻我快乐 仗剑走天涯
2019-08-14 11:48
wufuzhang
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:贵宾
威 望:21
帖 子:206
专家分:1346
注 册:2017-8-9
得分:7 
int[] age1 = new int[] {10,20};在内存中开辟一块空间,数组名指向这块内存空间的首地址
int[] age2 = age1;又定义了一个数组,并初始化把age1数组的首地址赋给age2数组,相当于age1和age2都指向同一块内存空间的首地址,
age2[1] = 30;修改了第二个元素的值,age1[1]去访问的时候,值就改变了。

不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2019-08-14 19:55
SDCuibin
Rank: 1
等 级:新手上路
帖 子:1
专家分:7
注 册:2019-8-16
得分:7 
区分一下,什么是“值类型”,“引用类型”,你就明白了
2019-08-16 17:18
别忘了当初
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2019-7-24
得分:0 
谢谢
2019-08-19 23:17
华氏异族
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2019-8-19
得分:0 
有点
懂了
2019-08-20 09:12
laityer
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-11-19
得分:0 
你这种做法打个比方就是,一个房间挂了两个房间号,一个是age1,另一个是age2。
当你修改age2的时候,实际上就等于在修改age1。
2019-09-14 20:02
沉默的痞子
Rank: 4
等 级:贵宾
威 望:12
帖 子:96
专家分:127
注 册:2015-10-7
得分:0 
两个数组其实是同一个数组
2019-09-16 14:57
goldpac2017
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-10-11
得分:0 
初学者,学习中,谢谢!
2019-10-11 21:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-496384-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.208721 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved