C# 语言 数组定义与多维数组操作

C#阿木 发布于 2025-06-12 8 次阅读


C 数组定义与多维数组操作详解

在C编程语言中,数组是一种非常基础且强大的数据结构,它允许开发者以连续的内存空间存储相同类型的数据。数组不仅可以存储一维数据,还可以扩展到多维,如二维、三维甚至更高维度的数组。本文将围绕C语言中的数组定义与多维数组操作进行详细讲解。

一、一维数组

1.1 数组定义

一维数组是最简单的数组形式,它由一系列相同类型的元素组成,这些元素在内存中连续存储。在C中,一维数组的定义如下:

csharp
type[] arrayName = new type[size];

其中,`type`代表数组中元素的类型,`arrayName`是数组的名称,`size`是数组的长度。

1.2 初始化数组

在定义数组的可以对其进行初始化,如下所示:

csharp
int[] numbers = new int[] { 1, 2, 3, 4, 5 };

1.3 访问数组元素

访问数组元素非常简单,只需使用索引即可。索引从0开始,如下所示:

csharp
Console.WriteLine(numbers[0]); // 输出:1
Console.WriteLine(numbers[4]); // 输出:5

1.4 遍历数组

在C中,可以使用for循环、foreach循环或LINQ查询来遍历数组。

1.4.1 for循环

csharp
for (int i = 0; i < numbers.Length; i++)
{
Console.WriteLine(numbers[i]);
}

1.4.2 foreach循环

csharp
foreach (int number in numbers)
{
Console.WriteLine(number);
}

1.4.3 LINQ查询

csharp
var query = numbers.Select(number => number 2);
foreach (int number in query)
{
Console.WriteLine(number);
}

二、多维数组

2.1 二维数组

二维数组可以看作是数组的数组,它由行和列组成。在C中,二维数组的定义如下:

csharp
type[,] arrayName = new type[rows, columns];

其中,`rows`和`columns`分别代表数组的行数和列数。

2.2 初始化二维数组

二维数组的初始化方式与一维数组类似,如下所示:

csharp
int[,] matrix = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 } };

2.3 访问二维数组元素

访问二维数组元素需要使用两个索引,分别代表行和列:

csharp
Console.WriteLine(matrix[0, 0]); // 输出:1
Console.WriteLine(matrix[2, 1]); // 输出:6

2.4 遍历二维数组

遍历二维数组可以使用嵌套的for循环或foreach循环。

2.4.1 嵌套for循环

csharp
for (int i = 0; i < matrix.GetLength(0); i++)
{
for (int j = 0; j < matrix.GetLength(1); j++)
{
Console.WriteLine(matrix[i, j]);
}
}

2.4.2 foreach循环

csharp
foreach (int number in matrix)
{
Console.WriteLine(number);
}

2.5 三维数组

三维数组可以看作是二维数组的数组,它由行、列和深度组成。在C中,三维数组的定义如下:

csharp
type[][] arrayName = new type[depth][];

其中,`depth`代表数组的深度。

2.6 初始化三维数组

三维数组的初始化方式与二维数组类似,如下所示:

csharp
int[][][] cube = new int[][][] {
new int[][] { new int[] { 1, 2 }, new int[] { 3, 4 } },
new int[][] { new int[] { 5, 6 }, new int[] { 7, 8 } }
};

2.7 访问三维数组元素

访问三维数组元素需要使用三个索引,分别代表深度、行和列:

csharp
Console.WriteLine(cube[0][0][0]); // 输出:1
Console.WriteLine(cube[1][1][1]); // 输出:8

2.8 遍历三维数组

遍历三维数组可以使用嵌套的for循环。

csharp
for (int i = 0; i < cube.GetLength(0); i++)
{
for (int j = 0; j < cube[i].GetLength(0); j++)
{
for (int k = 0; k < cube[i][j].GetLength(0); k++)
{
Console.WriteLine(cube[i][j][k]);
}
}
}

三、数组操作

3.1 数组排序

在C中,可以使用Array类提供的Sort方法对数组进行排序。

csharp
int[] numbers = { 5, 2, 9, 1, 5, 6 };
Array.Sort(numbers);

3.2 数组查找

可以使用Array类提供的FindIndex或FindLastIndex方法在数组中查找元素。

csharp
int index = Array.FindIndex(numbers, number => number == 5);
Console.WriteLine(index); // 输出:0

3.3 数组复制

可以使用Array类提供的Copy方法将一个数组复制到另一个数组。

csharp
int[] source = { 1, 2, 3, 4, 5 };
int[] destination = new int[source.Length];
Array.Copy(source, destination, source.Length);

3.4 数组反转

可以使用Array类提供的Reverse方法将数组反转。

csharp
Array.Reverse(numbers);

四、总结

本文详细介绍了C语言中的数组定义与多维数组操作。通过学习本文,读者可以掌握一维、二维和三维数组的定义、初始化、访问、遍历以及操作方法。在实际编程过程中,合理运用数组可以提高代码的效率和可读性。希望本文对读者有所帮助。