首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 陣列教學(一):認識陣列型別、宣告初始化、參考語意與多維陣列

     編輯:關於C#

陣列是 **相同型別、固定長度、索引存取** 的資料結構。本單元建立陣列核心觀念:型別分類、宣告語法、預設值、參考型別語意、多維與交錯陣列區別。

1. 陣列核心定義

  • 同質性:所有元素型別相同
  • 固定長度:建立時決定 Length,不可變
  • 索引存取:0 ~ Length-1,O(1) 隨機存取
  • 參考型別:陣列物件在 Managed Heap,變數存參考

2. 一維陣列宣告與初始化 四種寫法

語法範例說明
宣告+初始化int[] a = {1,2,3};編譯器推斷長度
new + 初始化int[] a = new int[] {1,2,3};明確 new,長度可省略
new 指定長度int[] a = new int[5];元素自動填預設值 (0)
分步宣告int[] a; a = new int[3]{1,2,3};分離宣告與配置

⚠️ int[] a = {{1,2},{3,4}}; ❌ 錯誤,這是二維陣列語法。

3. 預設值規則

型別分類預設值
數值型別 (int, double, ...)0
布林false
字元'\0'
參考型別 (string, class, 陣列...)null
結構體所有欄位遞歸預設值

4. 多維陣列:矩形陣列

C# 多維陣列 **所有維度寫在一組方括號內,逗號分隔**:


// 二維:3列 2行
int[,] matrix = new int[,] { {1,2}, {3,4}, {5,6} };
// 三維:2x2x2
int[,,] cube = new int[,,] { { {1,2}, {3,4} }, { {5,6}, {7,8} } };

索引存取:matrix[0,1] → 2 (第 0 列、第 1 行)

維度視覺化對應表

維度現實比喻索引範例
一維班級清單score[1] → 2 號學生成績
二維多班級成績表score[0,2] → 0 班 2 號
三維多學校多班級score[1,2,3] → 1 校 2 班 3 號
N 維擴展空間定位遊戲座標、科學計算

5. 參考語意實證:兩個變數指向同一陣列


int[] a = {1,2,3};
int[] b = a;        // b 指向 a 同一記憶體
b[0] = 7;
Console.WriteLine(a[0]); // 7 ← a 也被改變!

// 若需獨立副本
int[] c = new int[3];
Array.Copy(a, c, 3); // 或 a.CopyTo(c, 0)
c[0] = 9;            // a 不受影響

💡 **口訣**:new 才在 Heap 開新空間;單純指派只是複製參考。

6. 交錯陣列預覽

int[][] jagged = new int[3][]; — 外層固定 3 行,內層各行長度可不同。詳細宣告與遍歷見 下一單元。

教學重點檢核

  1. 陣列是 **參考型別**,指派不複製資料。
  2. 索引從 0 開始,越界拋 IndexOutOfRangeException(編譯期靜態分析可攔截常數索引越界)。
  3. 多維陣列語法:new int[3,4](矩形),new int[3][](交錯)。
  4. Length 為總元素數,多維單一維度用 GetLength(d)。
  5. 預設值由型別決定,new int[5] 自動產生五個 0。

下一單元將深入 Length 屬性、foreach 遍歷、交錯陣列完整操作。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved