解决方案 »

  1.   

    1.矩形数组肯定需要确定行列
    2.b是数组的数组,每一项是大小不确定的
    3.a存完一行接着存下一行,b每项都是一个数组的引用,那些数组可以是分散的
    4.行列
      

  2.   

    1.a的一、二维大小都必须得申明上大小吗?
    是的,多维数组在初始化的时候必须同时将每一维度都初始化
    2.b只能声明一维的大小吗?
    还可以这样b[0]=new int[20];
    3.听说a的内部存储方式还是和一维一样,都是线性存储的,这怎么理解?那数组的数组是怎么存储?
    一样,不过是数组套数组而已
    4.a又叫矩形(矩阵?)数组? 那么是3行2列,还是3列2行(规范叫法)?
    这种叫法其实没什么实际意义,多维数组是多维数组,它毕竟不是表
    比如int[,,] a=new int[1,2,3];你说哪个是行,哪个是列
      

  3.   

    你的提问都是中国老师教你的思维方式,我不想回答你的问题,只想告诉你你整个的思维方式全部错了,所以你的问题想复杂了。多维数组的本质是一维数组,下标写法不同的语法糖。
    比如int[,] arr = new int[3,2];其实就是int[6],只不过编译器(JIT)维护了每一维的长度,当你用arr[1,1]访问的时候,其实就是arr[1*3+1];数组的数组和其他什么的数组是一样的,只是它的元素是一个数组,仅此而已,而数组和其它对象,没有什么区别。
      

  4.   


    谢谢! 
    我在CSDN上提问的都是自己琢磨的,并不是老师教的,学校没有教这些。2个的不同点和我总结的都是琢磨出来的,所以我大多都是来求证的,CSDN大牛多嘛
    可能问题的描述上会显得比较呆板,但是我这样提问的原因就是想问原理或者说本质的东西。比如你说的“只不过编译器(JIT)维护了每一维的长度,当你用arr[1,1]访问的时候,其实就是arr[1*3+1];”  这个对于我来说是最有用的
      

  5.   

    对,我都是常常有问题没办法只得上网搜,这里搜点那里搜点,MSDN又写得不太详细。最后总结下来几点,再到CSDN求证来的。
    我去看看