c#的陣列初始化是在宣告陣列時將初始值放在大括號({})之內。如果沒有指定初始值,則陣列成員將自動初始化為該陣列型別的預設初始值。請閱讀陣列的屬性。如果將陣列宣告為某型別的字段,則當例項化該型別時它將被設定為預設值null。
一、一維陣列的初始化
1. 在宣告陣列時將其初始化。如:
int array = new int[6];
string stringarray = new string[3];2. 可以省略陣列的大小。如:
int array = new int;
string stringarray = new string;3. 如果提供了初始值設定項,還可以省略new運算子。如:
int array = ;
string stringarray = ;4. 宣告乙個陣列變數但不將其初始化,等到將陣列分配給此變數時必須使用new運算子。如:
int array;
array = new int;
string stringarray;
stringarray = new string;二、多維陣列的初始化
1. 宣告陣列時將其初始化。如:
int[,] array2d = new int[,],,}; // 二維陣列
int[,,] array3d = new int[,,]},}}; // 三維陣列對於二維陣列array2d來說,這是乙個3行2列的二維陣列。3行分別是、和這三行,每一行都用大括號{}括起來,第1行用0表示,第2行用1表示,第3行用2表示。
每一行大括號內表示的是列,對於array2d來說,每一行都是2列,用0、1表示。那麼這個陣列就是3行2列。
那麼array2d的第3行2列的元素就是array2d[2][1]=6。
二維陣列就是乙個二維的矩陣,只有x,y兩個維度,好像乙個平面,用strarr[x,y]可以定位到矩陣中的任何乙個元素。遍歷二維的矩陣一般需要兩層迴圈。
在這裡,再舉幾個三維陣列的例子:
int[,,] array3d = new int[,,],,},
,,}};
相當於int[2,3,4]。
?第一維是4:指的是最裡層大括號({})內的4個元素。分別是1,2,3,4或者5,,6,7,8。
?第二維是3:指的是第二層內三個大括號部分。分別是、和部分。
?第三維是2:指的是第一層內兩個大括號部分。分別是,,}和,,}。
int[,,] array3d = new int[,,]},},}};相當於int[3,1,3]。
int[,,] array3d = new int[,,],,},,,},,,}};相當於int[3,3,1]。
int[,,] array3d = new int[,,],,}};相當於int[1,3,3]。
三維陣列有三個維度,好像乙個立方體,需要用strarr[x,y,z]才能定位到矩陣中的元素,因此,如果需要遍歷,必須使用三個巢狀的迴圈。
乙個簡單的覆蓋三維矩陣的例子是:
for(int i=0; i2. 初始化陣列時不需要指定級別。如:
int[,] array2d = ,,};3. 宣告乙個陣列變數但不將其初始化,等到將陣列分配給此變數時必須使用new運算子。如:
int[,] array2d;
array2d = new int[,],,};4. 將陣列變數初始化為預設值(交錯陣列除外)。如:
int[,] array = new int[2,3];5. 可以給陣列的元素賦值。如:
array[3,4] = 10;
三、交錯陣列的初始化
1. 宣告乙個一維陣列,陣列中的5個元素都是一維整數陣列:
int jiaoarray = new int[5];初始化jiaoarray陣列的元素:
jiaoarray[0] = new int[10];
jiaoarray[1] = new int[9];
jiaoarray[2] = new int[8];
jiaoarray[3] = new int[7];
jiaoarray[4] = new int[6];元素初始化以後就可以使用了。
2. 使用初始值設定項將值填充給陣列元素,此時不需要設定陣列大小。如:
jiaoarray[0] = new int; // 初始化陣列第乙個元素:5個整數組成的陣列
jiaoarray[1] = new int; // 初始化陣列第二個元素:4個整數組成的陣列
jiaoarray[2] = new int; // 初始化陣列第三個元素:3個整數組成的陣列
3. 宣告陣列時進行初始化。如:
int jiaoarray = new int
,new int,
new int
};4. 可以使用下面的格式:
int jiaoarray =
,new int,
new int
};5. 交錯陣列的元素是引用型別,初始化為null。我們可以訪問個別陣列元素:
jiaoarray[0][1] = 5; // 將5賦給第1個陣列[0]的第2個元素[1]
jiaoarray[3][2] = 7; // 將7賦給第4個陣列[3]的第3個元素[2]
6. 可以混合使用交錯陣列和多維陣列。下面宣告和初始化乙個一維交錯陣列,該陣列包含大小不同的二維陣列元素:
int[,] jiaoarray = new int[3][,]
,},new int[,],,},
new int[,],,}
};我們可以訪問個別元素,下面的例子顯示第乙個陣列的元素[1,0]的值3:
console.writeline("",jiaoarray[0][1,0]);length方法返回包含在交錯陣列中的陣列的個數。
console.writeline(jiaoarray.length); // 返回值3
四、示例
示例一using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace test
; // 初始化陣列的元素
array[1] = new int[5] ; // 初始化陣列的元素
for (int i = 0; i < array.length; i++)
):", i);// 顯示交錯陣列的元素
//顯示交錯陣列中的每乙個元素的值,這個值是乙個一維整數陣列
for (int j = 0; j < array[i].length; j++)
", array[i][j],
j==(array[i].length-1)?"":" ");
}console.writeline(""); // 將每乙個交錯陣列的元素換行
}console.readline();}}
}執行結果:
元素(0):1 2 3 4
元素(1):0 2 4 6 8其中
j==(array[i].length-1)?"":" "將交錯陣列中的元素的值,即一維整數陣列的元素之間新增空格。請閱讀c#條件運算子(?:)。
示例二using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace test
, , , };
int array1 = array[3, 1];
// 三維陣列
int[, ,] array3d = new int[,,],,},
,,}};
int array2 = array3d[1, 2, 3];
console.writeline("array[3,1](二維陣列):", array1);
console.writeline("array3d[1,2,3](三維陣列):", array2);
console.readline();}}
}執行結果:
array[3,1](二維陣列):8
array3d[1,2,3](三維陣列):24
C 陣列初始化
定義 int pia new int 10 array of 10 uninitialized ints 此 new 表示式分配了乙個含有 10 個 int 型元素的陣列,並返回指向該陣列第乙個元素的指標,此返回值初始化了指標 pia。在自由儲存區中建立的陣列物件是沒有名字的,只能通過其位址間接地訪...
C 陣列初始化
c 陣列初始化 定義 int pia new int 10 array of 10 uninitialized ints 此 new 表示式分配了乙個含有 10 個 int 型元素的陣列,並返回指向該陣列第乙個元素的指標,此返回值初始化了指標 pia。在自由儲存區中建立的陣列物件是沒有名字的,只能通...
C 陣列 陣列的初始化
陣列和變數一樣,在使用時必須對其進行初始化,即給變數或陣列賦值。陣列可以在定義時初始化,也可以在使用時初始化。下面的 演示了如何初始化陣列。int arrayint 也可以用下面方式初始化陣列 int arrayint arrayint new int 初始化陣列還可將前面的方式組合起來,用這種方式...