视频讲解
一维数组实质上是一组相同类型数据的线性集合,例如学校中学生们排列的一字长队就是一个数组,每一位学生都是数组中的一个元素;再比如把一家快捷酒店看作一个一维数组,那么酒店里的每个房间都是这个数组中的元素。本节将介绍一维数组的创建及使用。
数组作为对象允许使用new关键字进行内存分配。在使用数组之前,必须首先定义数组变量所属的类型。一维数组的创建有两种形式。
声明一维数组使用以下形式:
数组元素类型决定了数组的数据类型,它可以是C#中任意的数据类型。数组名字为一个合法的标识符,符号“[ ]”表明是一个数组。单个“[ ]”表示要创建的数组是一个一维数组。
例如,声明一维数组,代码如下:
声明数组后,还不能访问它的任何元素,因为声明数组只是给出了数组名字和元素的数据类型,要想真正使用数组,还要为它分配内存空间。在为数组分配内存空间时,必须指明数组的长度。为数组分配内存空间的语法格式如下:
通过上面的语法可知,使用new关键字分配数组时,必须指定数组元素的类型和数组元素的个数,即数组的长度。
例如,为数组分配内存,代码如下:
使用new关键字为数组分配内存时,整型数组中各个元素的初始值都为0。
以上代码表示要创建一个有5个元素的整型数组,其数据存储形式如图7.2所示。
图7.2 一维数组的内存模式
在图7.2中,arr为数组名称,中括号“[ ]”中的值为数组的索引。数组通过索引来区分数组中不同的元素。数组的索引是从0开始的。由于创建的数组arr中有5个元素,因此数组中元素的索引为0~4。
上面代码中定义了一个长度为5的数组,但如果使用arr [5],将会引起索引超出范围异常,因为数组的索引是从0开始的。索引超出范围的异常提示如图7.3所示。
图7.3 索引超出范围异常信息
这种创建数组的方法是将数组的声明和内存的分配合在一起执行。
语法如下:
例如,声明并为数组分配内存,代码如下:
上面的代码创建数组month,并指定了数组长度为12。
数组的初始化主要分为两种:为单个数组元素赋值和同时为整个数组赋值,下面分别介绍。
为单个数组元素赋值即首先声明一个数组,并指定长度,然后为数组中的每个元素进行赋值,例如:
使用这种方式对数组进行赋值时,通常使用循环实现,例如,上面代码可以修改如下:
数组大小必须与大括号中的元素个数相匹配,否则会产生编辑错误。
同时为整个数组赋值时需要使用大括号,将要赋值的数据包含在大括号中,并用逗号(,)隔开。例如:
或者
或者
以上3种形式实现的效果是一样的,都是定义了一个长度为7的string类型数组,并进行了初始化,其中,后两种形式会自动计算数组的长度。
【例7.01】 创建一个控制台应用程序,其中定义了一个int类型的一维数组,实现将各月的天数输出,代码如下:( 实例位置:资源包\源码\07\7.01)
程序运行结果如图7.4所示。
图7.4 输出1~12月份各月的天数