牛骨文教育服务平台(让学习变的简单)
博文笔记

c#中的二维数组和交错数组的区别

创建时间:2017-11-07 投稿人: 浏览次数:1088
namespace 基本功修炼
{
    class Program
    {
        static void Main(string[] args)
        {
            //定义二维数组
            int[,] iArray = new int[2, 2];
            iArray[0, 0] = 1;   //给二维数组的第一个元素赋值
            iArray[0, 1] = 2;
            iArray[1, 0] = 3;
            iArray[1, 1] = 4;

            //交错数组
            int[][] iArray1 = new int[2][];

            iArray1[0] = new int[1];  //给交错数组中的第一个元素赋值
            iArray1[0][0] = 1;

            iArray1[1] = new int[2];
            iArray1[1][0] = 2;
            iArray1[1][1] = 3;

            //输出二维数组中的内容
            foreach (int item in iArray)
            {
                System.Console.WriteLine(item);
            }

            System.Console.WriteLine();
            System.Console.WriteLine();

            //输出交错数组当中的内容
            foreach (int[] itemArray in iArray1)
            {
                foreach (int item in itemArray)
                {
                    Console.WriteLine(item);
                }
            }
        }
    }
}

根据以上代码我们可以发现二维数组其实就是个矩阵形式,其中每个元素的都是int类型,因此直接遍历可以输出,并且是根据行下标0,0 0,1这样的形式输出。那么二维数组在内存中是什么形式,我们是以0,0下标解析出来的内存地址作为顺序存储空的首地址0,1 0,2分别是紧挨着的后面地址,然后才是行下标增加并且也是挨着上个内存的,为什么,因为内存是线性的。
交错数组是什么样呢。我们可以看成数组嵌套,每个元素又是数组,也就是保存的紧紧是数组的首地址,这样的话,每个数组的长度就随便了,这样每个元素对应的数组长度是任意的。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。