C# 将一个数组赋值给另一个数组的问题

代码如下:usingSystem;publicclassmyApp{publicstaticvoidMain(){int[]a={8,2,7,4,1};int[]b=a;... 代码如下:
using System;

public class myApp
{
public static void Main()
{
int[] a = { 8,2,7,4,1 };
int[] b = a;
Array.Sort(b);
Array.Reverse(b);
foreach (int num in a)
{
Console.Write(num+"\t");
}
Console.ReadKey();
}
}

原以为数组a赋值给b后,再对b进行排序并不影响数组a,输出还是82741,但实际上b经过排序后输出a数组的值也是被排序过的,即87421,这其中的原理不太明白,求解,多谢!
展开
 我来答
xuebaotuxi
推荐于2017-11-26 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4196
采纳率:85%
帮助的人:1055万
展开全部
亲,数组是引用类型,你把a附给了b,那么a和b就是指向堆内存中的同一个内容,排序一个当然会影响另一个
追问
那有什么办法能对b进行排序而不改变a?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式