今天在看书的时候遇到一个问题,希望各位大哥能帮忙解答下:
我定义了一个数组int[] int1 = new int[2]{1,2};
然后把定义另一个数组,并个int1指给它int[] int2 =int1;
然后问题在这边:
第一次我先把int1[1]的值改成int[1]=5,然后再去执行的话int2[1]的值也会变成5
但是为什么我用int2[1]=5来改变值的话,再去执行,系统就执行不了.....(也没有提示出错,就一直停在那边)
这个是为什么啊.....

解决方案 »

  1.   

    int[] int1 =new int[2]{1,2};
    int[] int2 =int1;
    for(int i=0;i<int1.Length;i++)
    {
    Response.Write("Old int1[" + i+"]= "+int1[i].ToString() +"<br/>");
    }
    for(int i=0;i<int2.Length;i++)
    {
    Response.Write("Old int2[" + i + "]= "+int2[i].ToString() +"<br/>");
    }
    <font color="red">int2[1]=5;</font>
    for(int i=0;i<int1.Length;i++)
    {
    Response.Write("New int1[" + i+"]= "+int1[i].ToString() +"<br/>");
    }
    for(int i=0;i<int2.Length;i++)
    {
    Response.Write("New int2[" + i + "]= "+int2[i].ToString() +"<br/>");
    }
    这个是不会出错,但是一直停在那边的
    int[] int1 =new int[2]{1,2};
    int[] int2 =int1;
    for(int i=0;i<int1.Length;i++)
    {
    Response.Write("Old int1[" + i+"]= "+int1[i].ToString() +"<br/>");
    }
    for(int i=0;i<int2.Length;i++)
    {
    Response.Write("Old int2[" + i + "]= "+int2[i].ToString() +"<br/>");
    }
    <font color="red">int1[1]=5;</font>
    for(int i=0;i<int1.Length;i++)
    {
    Response.Write("New int1[" + i+"]= "+int1[i].ToString() +"<br/>");
    }
    for(int i=0;i<int2.Length;i++)
    {
    Response.Write("New int2[" + i + "]= "+int2[i].ToString() +"<br/>");
    }
    这个是可以执行的,区别就在红色部分
      

  2.   

    顺便请高手们帮我到这边看看这个帖,谢谢了
    http://topic.csdn.net/u/20071029/14/654c77f9-0192-420f-b167-243ef868ff6d.html