1、陣列的宣告與分配空間
陣列:多個相同型別資料的組合。在c#中,陣列為引用型別。
(1)一維陣列的宣告方式
int a1; //注意方括號寫到變數名的前面
double b;
mydate c;
c#語言中陣列宣告時不能指定其長度(陣列中元素的個數) 例如:int a[5] 非法
(2)陣列初始化
a、動態陣列初始化
陣列定義與為陣列元素分配空間並賦值的操作分開進行。 因為c#中的陣列是引用型
例如:int a=new int[3]; //初始化
a[0]=3; a[1]=6; a[2]=9 //賦值
mydate dates; //物件型陣列
dates=new mydate[3];
dates[0]=new mydate(22,7,1964); dates[1]=new mydate(1,7,1984); dates[2]=new mydate(22,12,1964);
b、靜態初始化
在定義陣列的同時就為陣列元素分配空間並賦值。 注意:最後可以多乙個逗號
例如:int a=; //也可以寫成 int a= new int;
mydates dates=;
c、陣列元素的預設初始化
陣列是引用型別,它的元素相當於類的成員變數,因此陣列一經分配空間,其中的每個元素也被按照成員變數同樣的方式被隱式初始化。 數值型是0,引用型別是null
例如: int a=new int[5]; //a中的每個元素均為0
3、陣列元素的引用
index為陣列元素下標,可以使整型常量或整型表示式。 例:a[3],b[i],c[6-i]
陣列元素下標從0開始,長度為n的陣列合法下標取值範圍為0~n-1
每個陣列都有乙個屬性length指明它的長度。如:a.length指明陣列a的長度(元素個數)
4、foreach語句
foreach可以很方便地處理陣列、集合中各元素。 foreach是唯讀式遍歷(只能取值,無法改變)
如: int ages=new int[10];
foreach(int age in ages)
5、複製陣列
array.copy方法提供了陣列元素複製功能:
int source=; //源陣列
int dest=; //目的陣列
//複製源陣列中從下標0開始的source.length個元素到目的陣列,從下標0的位置開始儲存
array.copy(source,0,dest,0,source.length);
6、多維陣列
二維陣列舉例: int[,] a=,,};
可以用a.getlength(0)獲得陣列的行數,a.getlength(1)獲得陣列的列數
7、交錯陣列
c#中交錯陣列是陣列的陣列
例如:int t=new int[3];
t[0]=new int[2];
t[1]=new int[4];
t[2]=new int[3];
c#中多維陣列的宣告和初始化應按照從高維到低維的順序進行。
如:int t1= new int[4]; // 非法,與c++不同
------陣列初始化例項:
1 //#region 一維陣列初始化顯示2 //int arr1 = new int[6] ;
3 //foreach (int n in arr1)
4 // console.writeline("", n + " ");
5
6 "請輸入陣列的下標:");
7 //int i;
8 //i = convert.toint32(console .readline ());
9 arr1[i]);
10 //
11 //#endregion
12 13 /* #region 陣列初始化顯示
14 int[,] arr2 = new int[2, 3] , };
15 console .write ("陣列的行數為:");
16 console.writeline(arr2.rank);
17 console.write("陣列的列數為:");
18 console.writeline(arr2.getupperbound(arr2.rank - 1)+1);
19 for (int j = 0; j < arr2.rank; j++)
20 個成績:", i + 1);
36 scores[i] =convert.toint32(console.readline());
37 //sum = sum + scores[i];
38 }
39 "學生平均成績為:" + (sum / 10));
40
41 //通過乙個for迴圈求學生的總成績
42 for (int i = 0; i < scores.length; i++)
43 46 //清屏
47 console.writeline("學生平均成績為:" + (sum /scores .length ));
48 //通過迴圈輸出每乙個學生的成績
49 for (int i = 0; i < scores.length; i++)
50 個學生的成績為:", i + 1, scores[i]);
52 }
1 usingsystem;2 usingsystem.collections.generic;
3 usingsystem.linq;
4 usingsystem.text;
5 6 namespace二維陣列宣告初始化
7 , , };
14 console.write("陣列的行數為:");
15 console.writeline(arr2.rank);
16 console.write("陣列的列數為:");
17 console.writeline(arr2.getupperbound(arr2.rank - 1) + 1);
18 for (int j = 0; j < arr2.rank; j++)
19 25 console.writeline(s);
26 }
27 #endregion
28 }
29 }
30 }
1 usingsystem;2 usingsystem.collections.generic;
3 usingsystem.linq;
4 usingsystem.text;
5 6 namespace動態二維宣告初始化
7 26 else
27 30 }
31 console.writeline();
32 }
33 }
34 }
35 }
C 學習筆記 堆中的指標陣列
1.棧的記憶體都有有限的,但是堆得記憶體很大,為避免棧的記憶體開銷,我們都把整個物件都存放在 堆中,那麼在堆中區宣告乙個物件方法是 area one new area new 操作符,它用來生成某種型別的乙個物件,通常這個物件在堆中生成。one 宣告了乙個指向堆中的新物件的指標one。area ne...
C 陣列的學習筆記
using system using system.collections.generic using system.linq using system.text using system.threading.tasks namespace project4 int arr 陣列翻轉 reverse...
C 學習筆記四 陣列
陣列宣告 宣告陣列 typename arrayname arraysize arraysize指定元素數目,必須是整型常數例如 short months 12 該宣告建立乙個有12個元素的名為months陣列,每個元素都可儲存乙個short型別的變數陣列之所以被稱為復合型別,是因為他是使用其他型別...