数组:
相同数据类型组成的新的数据类型,数组的每一个成员称为一个数组元素。
一维数组定义:
int[] intArray;
float[] floatArray;
double[] doubleArray;
初始化:在定义数组后,必须对其初始化才能够使用
初始化数组有两种方法,动态初始化和静态初始化
动态初始化:
数据类型[] 数组名 = new 数据类型[数组长度]{元素1,元素2……};
动态初始化借助new运算符为数组元素分配内存空间,并赋初值。
①给定初值:
int[] intArray = new int[5]{1,2,3,4,5};
//int为4个字节,开辟4*5=20个字节的空间
int[] intArray = new int[]{1,2,3};
//与上一句等效,自动判断有多少个元素,开辟多少内存空间
②不给定初值,各元素取默认值:
数据类型初始值为0,布尔类型初始值为false,字符串初始值为null
int[] intArray = new int[6];
静态初始化:
数组类型[] 数组名 = {元素1,元素2,元素3,……元素n};
此情况下,不能将数组定义和静态初始化分开
//正确写法
int[] intArray = {1,2,3,4,5};
//错误写法
int[] intArray;
intArray = {1,2,3,4,5};
数组元素:
访问:数组名+[下标]
数组下标:数组元素在数组中的编号,从0开始计算,到数组长度-1,下标可以是常量,也可以是变量。
数组长度:数组名.Length;得到的值即为数组长度
例子:
int[] intArray = { 1, 2, 3, 4, 5, 6, 7 };
int n = intArray.Length;
Console.WriteLine(n); //7
注意:
- 系统不会检测数组元素的下标是否越界,编程时必须保证数组下标不能越界;
- 数组是一个整体,不能直接参与运算,只能对单个元素进行处理,通常用到数组的地方都会用到循环。
练习:
1.分别用动态初始化和静态初始化定义一个具有5个元素的整型数组,并求出数组元素的和。
1 using System;
2
3 namespace ConsoleApplication1
4 {
5 class Program
6 {
7 static void Main(string[] args)
8 {
9 //动态初始化
10 int[] intArray1 = new int[] { 5, 7, 6, 1, 5 };
11 int sum1 = 0;
12 for(int i=0;i<intArray1.Length;i++)
13 {
14 sum1 += intArray1[i];
15 }
16 Console.WriteLine(sum1);
17
18 //静态初始化
19 int[] intArray2 = { 8, 2, 3, 7, 1 };
20 int sum2 = 0;
21 for(int j=0;j<intArray2.Length;j++)
22 {
23 sum2 += intArray2[j];
24 }
25 Console.WriteLine(sum2);
26
27 Console.ReadKey();
28 }
29 }
30 }
2.将上面声明的2个数组对应的元素相加,放到另外一个数组里面。
1 using System;
2
3 namespace ConsoleApplication1
4 {
5 class Program
6 {
7 static void Main(string[] args)
8 {
9 //动态初始化
10 int[] intArray1 = new int[] { 5, 7, 6, 1, 5 };
11
12 //静态初始化
13 int[] intArray2 = { 8, 2, 3, 7, 1 };
14
15 int[] sumArray=new int[intArray1.Length];
16 for(int i=0;i<intArray1.Length;i++)
17 {
18 sumArray[i] = intArray1[i] + intArray2[i];
19 }
20 for (int j = 0; j < sumArray.Length; j++)
21 {
22 Console.WriteLine(sumArray[j]);
23 }
24 Console.ReadKey();
25 }
26 }
27 }
3.复制一个数组,即两个数组长度一样,把其中一个数组里面的元素复制到另外一个数组里面。
1 using System;
2
3 namespace ConsoleApplication1
4 {
5 class Program
6 {
7 static void Main(string[] args)
8 {
9 //动态初始化
10 int[] intArray1 = new int[] { 5, 7, 6, 1, 5 };
11
12 int[] intArray=new int[intArray1.Length];
13 for(int i=0;i<intArray1.Length;i++)
14 {
15 intArray[i] = intArray1[i];
16 }
17 for (int j = 0; j < intArray.Length; j++)
18 {
19 Console.WriteLine(intArray[j]);
20 }
21 Console.ReadKey();
22 }
23 }
24 }