C 陣列和Array類

2021-09-27 23:41:33 字數 3515 閱讀 3487

陣列是用於儲存多個相同型別資料的集合。

陣列是一種資料結構,它可以包含同一種資料型別的多個元素。

宣告陣列

先定義陣列中元素的資料型別,其後是和變數名,例如:

int

intarray;

//宣告乙個整形一維陣列

初始化陣列

宣告陣列後,就必須為陣列分配記憶體。陣列是引用資料型別,故必須為它分配堆上的記憶體。為此,應使用new運算子。例如:

intarray =

newint[4

];//分配了能儲存4個int資料型別的記憶體空間(託管堆)

記憶體分配如下圖:

注:1.可以在宣告資料的同時初始化:

int

intarray =

newint[4

];

2.可以用陣列初始化器為陣列每個元素賦初值:

int

intarray =

newint[4

];

3.使用陣列初始化器為陣列每個元素賦初值時,可以不指定陣列大小,因為編譯器會自動統計元素個數:

int

intarray =

newint

;

4.使用c#編譯器還可以有更簡化的形式,使用花括號可以同時宣告和初始化陣列:

int

intarray =

;

訪問陣列元素

素組只支援有整形元素的索引器,通過索引器傳遞元素編號訪問陣列元素。索引器總是以0開頭,表示第乙個元素。例:

int

intarray =

;int n1 = intarray[0]

;//n1 = 1;

int n2 = intarray[1]

;//n2 = 2;

intarray[2]

=7;// 將intarray陣列的第三個元素賦值為7

如果使用的索引器值(大於陣列的長度),會丟擲indexoutofrangeexception型別的異常陣列遍歷

1.使用for迴圈遍歷陣列

for

(int i =

0; i < intarray.length; i++

)

2.使用foreach遍歷陣列

foreach

(var item in intarray)

定義乙個person類,裡面包含firstname和lastname兩個屬性。

public

class

person

public

string firstname

public

string lastname

}

新建person的陣列:

person[

] person =

newperson[2

];

注:如果陣列中的元素是引用資料型別,就必須為每個元素分配記憶體;如果使用 了陣列中未分配記憶體的元素,或丟擲nullreferenceexception型別的異常。

為person陣列元素分配記憶體:

person[0]

=new

person

("san"

,"zhang");

person[1]

=new

person

("si"

,"li"

);

person陣列中的物件在託管堆中的情況:

如圖二維陣列的數學表示法:

在c#宣告這個二維陣列:

int[,

] twodim =

newint[3

,3];

twodim[0,

0]=1

;twodim[0,

1]=2

;twodim[0,

2]=3

;twodim[1,

0]=4

;twodim[1,

1]=5

;twodim[1,

2]=6

;twodim[2,

0]=7

;twodim[2,

1]=8

;twodim[2,

2]=9

;

注:宣告陣列後,就不能修改其階數了

也可用如下的方式進行初始化二維陣列:

int[,

] twodim =,,

};

注:使用陣列初始化器是必須對每個元素進行初始化,不能把某些元素的初始化放在以後完成。

鋸齒陣列和二維陣列比較

二維陣列的大小類似於矩形

矩形陣列的大小比較靈活,每行可以有不同的大小

鋸齒陣列宣告及初始化

int

jagged =

newint[3

];jagged[0]

=new

int[1]

;jagged[1]

=new

int[2]

;jagged[2]

=new

int[3]

;

鋸齒陣列遍歷
int i =

0;foreach

(var item in jagged)

,column: ,value: ");

++j;

}++i;

}

輸出結果:

row:

0,column:0,

value:1

row:

1,column:0,

value:1

row:

1,column:1,

value:0

row:

2,column:0,

value:1

row:

2,column:1,

value:1

row:

2,column:2,

value

:1

黑馬程式設計師 C 陣列和Array類

c 陣列和array類的關係 在c 中array類是所有陣列的基類,msdn上的解釋為 提供一些方法,用於建立 處理 搜尋陣列並對陣列進行排序,從而充當公共語言執行時中所有陣列的基類。最常見的屬性是 length 獲得乙個 32 位整數,該整數表示 array 的所有維數中元素的總數。下面的 將nu...

C 模板類vector和array

模板類vector和array是陣列的替代品。1.模板類vector 模板類vetor類似於string類,也是一種動態陣列。可以在執行階段設定vector物件的長度,可在末尾附加新資料,還可在中間插入新資料。基本上,它是使用new建立動態陣列的替代品。實際上,vector類確實使用new和dele...

ruby學習 陣列類(Array)

1,陣列的建立 1 使用 來建立陣列 num 2,3,4,5,6 str a d c 2 使用array.new 來建立 3 使用 w與 i來建立 2,to a方法。對雜湊物件使用to a方法,結果會得到相應的陣列的陣列。3,split方法 對用逗號或者空白間隔的字串使用split方法,也可以建立陣...