C# 数组完全指南:声明、初始化、访问与多维数组
数组存储固定大小的同类型元素顺序集合。可视为存储在连续内存位置的同类型变量集合。通过索引访问特定元素。
所有数组由连续内存位置组成。最低地址对应第一个元素,最高地址对应最后一个元素。

声明数组
datatype[] arrayName;
datatype:指定数组元素类型[]:指定数组秩(维度)arrayName:数组名称
示例:double[] balance;
初始化数组
声明不分配内存,需用 new 关键字创建实例:
double[] balance = new double[10];
赋值方式
- 按索引赋值:
balance[0] = 4500.0; - 声明时初始化:
double[] balance = { 2340.0, 4523.69, 3421.0 }; - 指定大小并初始化:
int[] marks = new int[5] { 99, 98, 92, 97, 95 }; - 省略大小:
int[] marks = new int[] { 99, 98, 92, 97, 95 };
数组变量赋值给另一变量时,两者指向同一内存位置(引用类型特性)。
默认值初始化
创建数组时,编译器隐式按类型初始化各元素:int 默认 0,bool 默认 false,引用类型默认 null。
访问数组元素
double salary = balance[9]; // 访问第 10 个元素
完整示例
using System;
namespace ArrayApplication {
class MyArray {
static void Main(string[] args) {
int[] n = new int[10];
int i, j;
for (i = 0; i < 10; i++) n[i] = i + 100;
for (j = 0; j < 10; j++) Console.WriteLine("Element[{0}] = {1}", j, n[j]);
Console.ReadKey();
}
}
}
输出:
Element[0] = 100
Element[1] = 101
...
Element[9] = 109
foreach 循环遍历
foreach (int j in n) {
int i = j - 100;
Console.WriteLine("Element[{0}] = {1}", i, j);
}
foreach 简化只读遍历,无法修改元素值。
进阶数组概念
| 序号 | 概念及说明 |
|---|---|
| 1 | 多维数组:支持多维,最简单是二维数组 int[,] |
| 2 | 交错数组:数组的数组,每行长度可不同 int[][] |
| 3 | 数组作为参数:传递数组名(无索引)即传引用 |
| 4 | 参数数组:params 关键字,传递可变数量参数 |
| 5 | Array 类:System.Array 是所有数组基类,提供排序、搜索、复制等方法 |
二维数组示例
int[,] matrix = new int[3, 4] {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
Console.WriteLine(matrix[1, 2]); // 7
交错数组示例
int[][] jagged = new int[3][];
jagged[0] = new int[] {1, 2};
jagged[1] = new int[] {3, 4, 5};
jagged[2] = new int[] {6, 7, 8, 9};
C语言