5.2 数组声明与初始化
5.2.1 数组声明
1.一维数组的声明
一维数组是有一个下标的数组,其声明格式如下:
(1)声明一维数组的语法格式1为:
数据类型[ ] 数组名;
说明:
数组的长度不是声明的一部分。数组的类型可以是基本数据类型,也可是枚举或其他类型。声明中的方括号([ ])必须跟在元素类型后面,而不是数组名后面。
(2)声明一维数组的语法格式2为:
元素类型[] 数组名=new 元素类型[元素个数];
说明:
①数组元素个数可以是一个常量表达式,也可以是一个变量表达式。例如:
int Size=5;
int[] A=new int[Size];
1
2
②C#允许声明元素个数为0的数组,例如:
int[] A=new int[0];
1
5.2.2 数组的初始化
数组必须在访问前初始化,初始化的格式有多种。
格式1:元素类型[] 数组名={初始值列表};
格式2:元素类型[] 数组名=new类型名称[]{初始值列表};
格式3:元素类型[] 数组名=new类型名称[元素个数]{初始值列表};
说明:
(1)声明数组并将其初始化,例如: int[] arr = { 1,2,3,4,5 };
其中花括号被称为数组初始化器,数组初始化器只能在声明数组变量时使用,不能在声明数组之后使用。
(2)可以通过new运算符创建数组并将数组元素初始化为它们的默认值。例如:int[] arr =new int[5];//arr数组中的每个元素都初始化为0
注意:数值数组元素的默认值为零,引用元素的默认值为null。
(3)可以在声明数组时将其初始化,并且初始化的值为用户自定义的值。例如:
int[] arr=new int[5]{1,2,3,4,5};
1
(4)声明一个数组变量时可以不对其初始化,但在对数组初始化时必须使用 new 运算符。例如:
string[] arrStr;
arrStr=new string[7]{"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
1
2
(5)初始化数组时可以省略new运算符和数组的长度。编译器将根据初始值的数量来计算数组长度,并创建数组。例如:
string[] arrStr={"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
1
(6)为数组指定初始化的值可以是变量表达式,例如:
int x=1,y=2;
int[] A= new int[5]{x,y,x+y,y+y,y*y+1};
1
2
【例5-1】 数组的初始化例。
using System;
namespace P5_1
{
class TestArray
{
static void Main(string[] args)
{
string[] days = { "Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat" };//定义一个数组
System.Console.WriteLine(days[0]); //输出索引为0的值
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
【例5-2】 指向同一个对象的多个数组元素例。
当数组元素的类型为值类型时,数据直接存放在数组中,整个数组的大小等于数组的长度乘以单个元素的大小。而当数组元素的类型为引用类型时,数组中存放的只是各个引用对象的地址。这时,在对数组进行初始化之后,还要记住对各种数组元素进行初始化。此外,不排除多个数组元素指向同一个对象的可能,此时修改一个数组元素可能会影响到其他的数组元素。
【例5-2】指向同一个对象的多个数组元素案例。
using System;
namespace P5_2
{
class RefArray
{
public static void Main()
{
Contact[] ca = new Contact[3];
ca[0] = new Contact();
ca[1] = new Contact();
ca[2] = new Contact();
ca[0].m_name = "李明";
ca[0].m_telephone = "010-60010800";
ca[1].m_name = "张鹏";
ca[1].m_telephone = "010-60020300";
//两个数组元素指向同一对象
ca[2] = ca[0];
ca[2].m_telephone = "010-50050500";
foreach (Contact c in ca) //遍访数组ca中的每个成员
Console.WriteLine(c.m_name + ":" + c.m_telephone);
}
}
class Contact
{
public string m_name;
public string m_telephone;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
5.2.3 数组元素的访问
1.一维数组元素的引用
使用数组名与下标(索引)可以唯一确定数组中的某个元素,从而实现对该元素的访问。例如:
int x=4,y=5;
int[] Array=new int[3]{1,2,3};
x=Array[0]; // 使用数组第1个元素的值,以便为其它变量赋值
Array[1]=y; // 为数组第2个元素赋值
在访问数组元素时,要注意不要使下标越界,例如:
int[] Array=new int[5];
Array[5]=15; // 下标越界
1
2
3
4
5
6
7
2.一维数组的访问
通过foreach语句或数组的下标将一维数组元素值读出。foreach 语句通常用来访问数组中存储的每个元素,格式如下:
1
foreach( 元素类型 元素变量 in 元素变量集合)
{
循环语句
}
说明:使用foreach语句时,首先输入foreach关键字,然后是括号。括号内必须包含以下信息:集合中元素的类型、集合中元素的标识符名称、关键字in和集合的标识符,嵌套语句在括号之后。foreach只能对集合进行读取操作,不能通过元素变量修改数组中元素的值。
【例5-3】foreach语句的使用。
using System;
namespace P5_3
{
class Program
{
static void Main(string[] args)
{
int[] members = new int[] { 0, 1, 2, 3, 5, 8, 13 }; //定义了一个数组
foreach (int member in members) //进行foreach循环
{
System.Console.WriteLine(member); //输出结果
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
5.2.4 应用实例
【例5-4】 编写C#控制台程序,要求用户输入月份号码,然后显示该月的英文名称,如用户输入2,程序显示“February”。
————————————————
版权声明:本文为CSDN博主「刘一哥GIS」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lucky51222/article/details/116035552
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。