想研究一些物件導向的東西,也許是**寫得還不夠多。感覺還不好,看那些教程,不是嫌太水就是太難看不懂。心情很是落寞
不過再怎樣也要堅持每天發一篇部落格。
這篇來說一下c#中的陣列,多維陣列,交錯陣列的一些東西。
有那麼一點點研究茴香豆的茴有四種寫法的感覺。
先講三點顯而易見卻又值得一提的東西
第一點陣列是一種資料結構
似乎沒什麼好解釋的
第二點陣列型別是從抽象類array派生出的引用型別
與c當中的陣列不同的是c#以物件導向的方式設計的。
所以再次證明 任何東西都是物件
第三點c#的陣列可以開很大
c直接開在堆疊不同的還有c#的陣列在託管棧只有引用,而實際的資料是放在託管堆裡面的。
int[, , ] a = new int[500, 500, 500];
這樣是不會有問題的。同樣的大小在c早就……了
雖然是這麼說,正常使用是不大可能用到這麼大的陣列。
第四點陣列型別可以使用foreach迭代
這個部分我想另外寫一篇來研究這個
另外還有幾點可以參考msdn陣列部分
然後呢,先上**吧
[c-sharp]view plain
copy
//一維陣列
int a1 =
newint
[3];
int a2 =
newint
; int a3 = ;
int a4;
a4 = new
int[3] ;
//int[3] a5; 錯誤**
//int a5[3]; 錯誤**
a1[0] = 0;
console.writeline(""
,a1[0]);
//多維資料
int[,] b1 =
newint
[3, 3];
int[,] b2 =
newint
[,] ,
, };
int[,] b3 =
newint
[,] ,
, };
int[,] b4;
b4 = new
int[,],
, };
int[, ,] b5 =
newint
[2,2,2] ,},
,}};
b5[0,0,0] = 1;
console.writeline(""
,b5[0,0,0]);
//交錯陣列(陣列的陣列)
int c1 =
newint
[3];
c1[0] = new
int[3];
c1[1] = new
int[2];
c1[2] = new
int[1];
int c2 =
newint
, newint
, newint
};
int c3 =
, new
int ,
newint
};
//int c4 = new int[3][3];錯誤**
c1[0][0] = 3;
console.writeline(""
,c1[0][0]);
//混搭
int[,] d1 =
newint
[1][,];
d1[0] = new
int[,],
, };
console.writeline(""
,d1[0][0,0]);
一維陣列部分,比較有價值的是那兩行錯誤的**。
c#與c在這個地方語法有所不同,本來這兩種語言的設計這塊時的思路就有所差異
關於語法的事,習慣就好了
關於多維陣列,c#當中有兩種方式,乙個是多維陣列,另一種是交錯陣列
根據msdn的說明
多維陣列只是陣列,交錯陣列是陣列的陣列
半句半句看都還好,整句看起來怎麼不是一回事。我也不知道該怎麼解釋比較好
簡單總結了下面幾點
交錯矩陣的宣告部分比較麻煩
使用時交錯陣列的樣子更像c語言是人都看出來了,可以利用for語句來簡化
多維陣列只能構造乙個矩形的資料結構,而使用交錯陣列可以設計出不規則的結構
所以有需要時可以選擇使用交錯矩陣。
在這裡 使用foreach迭代也有所不同,
交錯陣列的訪問速度比多維陣列快
具體的分析可以參見
《c#中各種陣列效能比較》
唉,想自己寫一些東西,真的不容易。也許是自己對這部分的內容掌握還沒十分徹底,也許是語言表達的問題
總之短短的一篇文章,寫了好久,而且似乎沒能表達出什麼特別的東西
原文**:
原作者為 atskyline。請尊重原作者版權
多維陣列與交錯陣列
建立乙個一維陣列 int a new int 10 建立乙個二維陣列 int a new int 2,3 兩行三列的陣列 我們知道一維陣列在記憶體中是佔據乙個線性的空間。而且陣列有乙個特點,也可以說是缺點,那就是陣列一旦分配之後,長度就是確定的。對於二維陣列來說亦同,二維陣列在記憶體中佔據的,其實也...
陣列和多維陣列
索引陣列 帶有數字索引的陣列 關聯陣列 帶有指定鍵的陣列 多維陣列 包含乙個或多個陣列的陣列 陣列中的每個元素都包含兩項 鍵和值 php中陣列元素可以是任意型別 索引陣列 鍵 值 鍵為數字 在陣列中,鍵不能相同,值可以相同 關聯陣列 鍵 值 鍵為字串,或字串與數字混合 鍵不能相同 索引陣列 關聯陣列...
C 多維陣列
宣告乙個二維陣列,如下 型別 陣列名 宣告乙個三維陣列,如下 型別 陣列名 多維陣列最簡單的形式是二維陣列。乙個二維陣列,在本質上,是乙個一維陣列的列表。乙個二維陣列可以被認為是乙個帶有 x 行和 y 列的 下面是乙個二維陣列a,包含 3 行和 4 列 所以訪問二維陣列的元素 a 行下標,列下標 初...