方式一:宣告同時指定長度
int[] arr = new int[3]; // 預設值 0,0,0
arr[0] = 11; arr[1] = 22; arr[2] = 33;
方式二:先宣告、後配置
int[] arr;
arr = new int[] { 11, 22, 33 }; // 長度由初始化器決定
方式三:重新配置改變長度
int[] arr = new int[3];
arr = new int[4] { 11, 22, 33, 44 }; // 重新指向新陣列,舊陣列待 GC
關鍵觀念
- 陣列為參考型別,變數存參考,`new` 配置實體
- 長度不可變,所謂「改變長度」實為建立新陣列
- 隱性型別陣列:`var arr = new[] { 1, 2, 3 };` (C# 3+)
- 預設值:數值型別 0、bool false、參考型別 null
陣列複製與複製
// 淺層複製 (參考型別元素共享實體)
int[] src = { 1, 2, 3 };
int[] dst = new int[3];
Array.Copy(src, dst, 3); // 或 src.CopyTo(dst, 0)
// 深層複製需自行逐元素 Clone