基础整理-数组

来源:互联网 发布:修音软件是什么 编辑:程序博客网 时间:2024/06/03 21:39

在C#面向过程中数组是一项十分强大的功能,在没有集合的时候数组为我们提供了多数据保存的解决方案。
在我们的日常生活中常常会遇到需要处理大量同一类型数据的情况,例如我们成绩等。按照我们目前学习的知识,我们需要建立与人数数量相同的变量来保存每一个人的成绩,例如:

int sut1 = 50int sut2 = 60int sut3 = 90int sut4 = 70int sut5 = 80int sut6 = 100

这样做的麻烦和低复用性,以及异常艰难的后期维护是显而易见的,所以我们就引入了我们今天要讲的内容——数组。
数组是指一组数据的集合,数组中的每个数据被称作元素。在数组中可以存放任意类型的元素,但同一个数组里存放的元素类型必须一致。数组可分为一维数组和多维数组。
在C#中,可以使用下面的语句来定义一个数组。

int[] x = new int[100];

上述语句就相当于在内存中定义了100个int类型的变量,第一个变量的名称为x[0],第二个变量的名称为x[1],以此类推,第100个变量的名称为x[99],这些变量的初始值都是0。为了更好地理解数组的这种定义方式,可以将上面的一句代码分成两句来写,具体如下。

int[] x;   //声明一个int[]类型的变量x = new int[100]; //创建一个长度为100的数组

接下来,通过两张内存图来详细地说明数组在创建过程中内存的分配情况。
第一行代码“int[] x;”声明了一个变量x,该变量的类型为int[],即一个int类型的数组。变量x会占用一块内存单元,它没有被分配初始值,内存中的状态如图所示。
这里写图片描述
第二行代码“x = new int[100];”创建了一个数组,将数组的地址赋值给变量x。在程序运行期间可以使用变量x来引用数组,这时内存中的状态会发生变化。
这里写图片描述
在上图中描述了变量x引用数组的情况。该数组中有100个元素,初始值都为0。数组中的每个元素都有一个索引(也可称为角标),要想访问数组中的元素可以通过“x[0]、x[1]、……、x[98]、x[99]”的形式。在C#中,为了方便获得数组的长度,提供了一个Length属性,在程序中可以通过“数组名.Length”的方式来获得数组的长度,即元素的个数。需要注意的是,数组中最小的索引是0,最大的索引是“数组名.Length-1”。

补充:
动态初始化
在定义数组时只指定数组的长度,由系统自动为元素赋初值的方式称作动态初始化。

静态初始化数组
在初始化数组时还有一种方式叫做静态初始化,就是在定义数组的同时就为数组的每个元素赋值。数组的静态初始化有两种方式,具体格式如下。
1.类型[] 数组名= new 类型[]{元素,元素,……};
2.类型[] 数组名= {元素,元素,元素,……};

访问数组中的某一个元素或某几个元素的方法:

public class Program11{  public static void Main(string[] args)  {  int[] arr;  //声明变量  arr = new int[3]; //创建数组对象  Console.WriteLine("arr[0]=" + arr[0]);  //访问数组中的第一个元素  Console.WriteLine("arr[1]=" + arr[1]);  //访问数组中的第二个元素  Console.WriteLine("arr[2]=" + arr[2]);  //访问数组中的第三个元素  Console.WriteLine("数组的长度是:" + arr.Length);//打印数组长度      }}

当数组被成功创建后,数组中的元素会被自动赋予一个默认值,根据元素类型的不同,默认初始化的值也是不一样的。具体如表所示。

这里写图片描述
在程序中可以通过一个数组来保存某个班级学生的考试成绩,试想一下,如果要统计一个学校各个班级学生的考试成绩,又该如何实现呢?这时就需要用到多维数组,多维数组可以简单地理解为在数组中嵌套数组。在程序中比较常见的就是二维数组,接下来针对二维数组进行详细的讲解。
在C#语言中,定义二维数组时也需要遵循一定的语法规范,具体语法格式如下。
int[,] arr = new int[3,4];
上述代码定义了一个二维数组arr,它的第一维长度为3,第二维长度为4。为了让初学者更好地理解二维数组的结构,接下来通过一个图例进行描述,如图所示。
这里写图片描述
前面直接定义了一个二维数组,但并没有对数组中的元素进行初始化,此时系统会自动对其进行初始化,并赋值为 0。如果希望在定义数组时,就直接对数组中的元素进行初始化,则可以使用以下代码。
int[,] arr = new int[3,4] {{1,2,3,4},{1,2,3,4},{1,2,3,4}};
上述代码是一种标准的初始化形式,也可以将其进行简化,简化后的代码如下。
int[,] arr = {{1,2,3,4},{1,2,3,4},{1,2,3,4}};
以上就是关于数组的简单介绍,如果想对数组有更加充分认识是需要大量的练习的。

原创粉丝点击