| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
Reworld,下班在家制作游戏,1500万奖金等你拿以码会友 以友辅仁
共有 375 人关注过本帖
标题:运行结果为啥是30而不是20,求解
只看楼主 加入收藏
别忘了当初
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2019-7-24
结帖率:100%
  已结贴   问题点数:20  回复次数:7   
运行结果为啥是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
等 级:论坛游民
威 望:3
帖 子:50
专家分:60
注 册:2019-8-6
  得分:7 
C#的数组,是按引用传递,
int[] age2 = age1;

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

我傻我快乐 仗剑走天涯
2019-08-14 11:48
wufuzhang
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广州
等 级:版主
威 望:20
帖 子:197
专家分:1289
注 册: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: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:82
专家分:82
注 册:2015-10-7
  得分:0 
两个数组其实是同一个数组
7 天前 14:57
快速回复:运行结果为啥是30而不是20,求解
数据加载中...
 
   



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

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