陣列是無序的元素序列。陣列中的所有元素都具有相同的型別。(引用型別)
宣告陣列變數
int pins;
陣列元素並非只能使用基本資料型別。陣列元素還可以是結構、列舉或者類,例如,為建立由date結構的陣列。
date dates;
建立陣列例項
無論元素是什麼型別,陣列始終都是引用型別。
宣告陣列變數時不需要指定大小,也不會分配記憶體(只是將引用儲存到棧上)。建立陣列例項時才分配記憶體,陣列大小也在這時指定。
pins = new int[4];
由於陣列例項的記憶體是動態分配的,所以陣列例項的大小不一定是常量;而是可以在執行時計算,例如
ine size = int.parse(console.readline());
int pins = new int[size];
甚至可以建立大小為0的陣列。這雖然聽起來有點奇怪,但又是陣列大小需要動態決定,而且可以為0,所以這個設計是有意義的。大小為0的陣列不是null陣列,而是包含0個元素的陣列。
填充和使用陣列
建立陣列例項時,所有元素都被初始化為預設值。(如數值初始化為0,物件為null,datetime為「01/01/000100:00:00」)
int pins = new int[4] ;
大括號中的值的數量必須和要建立的陣列例項的大小完全匹配
初始化陣列變數時可以省略new表示式和陣列大小。編譯器將根據初始值的數量來計算大小,並生成**來建立陣列。
int pins = ;
建立由結構或物件構成的陣列時,可以呼叫構造器來初始化陣列中的每個元素,例如
time schedule = ;
建立隱式型別的陣列
如果在宣告陣列時指定了初始值列表,就可以讓c#編譯器自己推斷陣列元素的型別。
var names = new
使用這個語法,必須保證所有初始值都有相同的型別。
陣列作為方法引數和返回型別
方法可以獲取陣列型別的引數,也可以把它們作為返回值傳遞。
public void processdata(int data)
foraech(int i in data)
方法要返回乙個陣列,返回型別必須是陣列型別。
public int readdata()
return data;//返回data陣列
複製陣列
要真正複製陣列例項,獲得堆上的實際資料的拷貝,那麼必須做兩件事情。首先,必須建立型別和大小與原始陣列相同的乙個新陣列例項,然後將資料元素從原始陣列逐個複製到新陣列,如下:
int pins = ;
int copy = new int[pins.length];
for(int i=0;i
copy[i] = pins[i];
②copyto方法將乙個陣列的內容複製到另乙個陣列,並從指定的其實索引處開始複製。
int pins = ;
int copy = new int[pins.length];
pins.copyto(copy,0);
③system.array的靜態方法copy
int pins = ;
int copy = new int[pins.length];
array.copy(pins,copy,copy.length);
④system.array的例項方法clone
int pins = ;
int copy = (intpins.clone);
多維陣列
二維陣列的第一維是錶行,第二維是表列。
第十章 Lua陣列
1.一維陣列 array for i 0,2 do print array i end執行結果 nil lua tutorial正如你所看到的,我們可以使用整數索引來訪問陣列元素,如果知道的索引沒有值則返回nil。在 lua 索引值是以 1 為起始,但你也可以指定 0 開始。除此外我們還可以以負數為...
第十章 動態陣列
分類 陣列與指標的藝術2009 11 23 10 46 6542人閱讀 收藏舉報 儲存 程式設計演算法語言 當寫下這個題目的時候,筆者心裡其實非常犯難。因為從本質上來說,本章想闡述的內容與題目所宣示的概念,其實是不一樣的。在程式設計中,我們常常要處理一段長度未知的資料,而且,執行過程中長度可能會發生...
第十章 陣列和指標
陣列初始化 當初始化列表中的值少於陣列元素個數時,編譯器會把剩餘的元素都初始化為0 個數多於陣列元素個數時,會視為錯誤 省略陣列中括號中的數字,編譯器會根據初始化列表中的專案來確定陣列的大小。days是陣列 sizeof days是整個陣列的大小 sizeof day 0 是陣列中乙個元素的大小 c...