C 陣列初始化

2022-08-28 03:18:13 字數 4045 閱讀 6897

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 初始化陣列還可將前面的方式組合起來,用這種方式...