前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数组声明与初始化

数组声明与初始化

作者头像
用户7933786
修改2021-05-08 18:20:50
1.2K0
修改2021-05-08 18:20:50
举报
文章被收录于专栏:数组

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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档