宣告陣列之後,可以立即為其填充值。方法是在一對大括號中,使用乙個以逗號分隔的資料項列表。**清單2-30宣告了乙個字串陣列,然後在一對大括號中指定了9種不同的程式語言的名稱。
宣告陣列的同時進行賦值
string languages = ;
在這個以逗號分隔的列表中,第一項成為陣列的第乙個元素,第二項成為第二個元素,依此類推。我們使用大括號來定義乙個陣列字面量。
只有在同乙個語句中宣告並賦值時,**清單2-30的賦值語法才可用。如果是在宣告了之後才進行賦值,則需要使用new關鍵字和對應的資料型別,如**清單2-31所示。
**清單2-31 宣告之後再進行陣列賦值
string languages;languages = new string;
c#還支援將new關鍵字作為宣告語句的一部分使用,所以它允許像**清單2-32那樣的賦值和宣告。
**清單2-32 宣告的同時使用new進行陣列賦值
string languages = new string;
使用new關鍵字是告訴「執行時」為資料型別分配記憶體。它指示「執行時」例項化資料型別——本例是乙個陣列。
任何時候將new關鍵字作為陣列賦值的一部分使用,都可以同時在方括號內指定陣列的大小。**清單2-33演示了這個語法。
**清單2-33 使用new關鍵字進行宣告和賦值
string languages = new string[9];
在初始化語句中,陣列的大小和大括號中包含的元素數量必須匹配。除此之外,也可以分配乙個陣列,但不指定它的初始值,如**清單2-34所示。
**清單2-34 分配陣列,但不指定初始值
string languages = new string[9];
分配乙個陣列但不指定初始值仍然會初始化每個元素。「執行時」會將每個元素初始化為它們的預設值,如下所示:
引用型別(比如string)初始化為null;
數值型別初始化為零;
bool初始化為false;
char初始化為/0。
其結果就是,在使用之前,不必單獨對陣列的每個元素進行賦值。
在c# 2.0中,可以使用default()運算子來判斷一種資料型別的預設值。default()獲取乙個資料型別作為引數。例如,default(int)會返回0,而default(char)會返回/0。
由於陣列大小不被作為變數宣告的一部分,所以可以在執行時指定陣列大小。例如,**清單2-35根據在console.readline()呼叫中由使用者指定的大小來建立乙個陣列。
**清單2-35 在執行時定義陣列大小
string grocerylist;system.console.write("how many items on the list? ");
int size = int.parse(system.console.readline());
grocerylist = new string[size];
// ...
c#採取類似的方式來處理多維陣列。要以逗號分隔每一維上的大小。**清單2-36初始化了乙個沒有走棋的tic-tac-toe棋盤。
**清單2-36 宣告乙個二維陣列
int[,] cells = int[3,3];
還可以像**清單2-37那樣,將乙個tic-tac-toe棋盤初始化成特定的棋子布局。
初始化乙個二維整數陣列
int[,] cells = ,,};
初始化採用的模式是乙個有3個int型別的元素的陣列,每個元素都具有相同的大小。在本例中,這個大小是3。注意,每個int元素的維必須是完全一致的。也就是說,像**清單2-38那樣的宣告是無效的。
c 陣列賦值基礎教程 Array
宣告陣列之後,可以立即為其填充值。方法是在一對大括號中,使用乙個以逗號分隔的資料項列表。清單2 30宣告了乙個字串陣列,然後在一對大括號中指定了9種不同的程式語言的名稱。宣告陣列的同時進行賦值 string languages 在這個以逗號分隔的列表中,第一項成為陣列的第乙個元素,第二項成為第二個元...
C 基礎教程(一)
1.清單 1 1.乙個簡單的歡迎程式 welcome.cs namespace declaration using system program start class class welcomecss 結束。任何位於 之間的語句定義為塊。塊定義了程式元素的活動範圍 或者稱為生命期和可見性 這些概念...
C 基礎教程(變數)
1 巨集常量 define 巨集常量名 常量值 2 const 修飾的變數 1 short 2位元組 2 int 4位元組 3 long win下4位元組 linux下32位系統是4位元組 64位是8位元組 4 long long 八字節可以使用sizeof 求出資料型別占用記憶體大小,具體用法 s...