C#二維數組

二維數組的表示方法

第一種表示方法:

int[,] a=new int[2,4];//定義一個2行4列的二維數組

第二種表示方法:

int[][]a=new int[2][];//後面中括號裏面不能寫數字。

a[0]=new int[2]; //表示第一行有兩列,兩個元素

a[1]=new int[3]; //表示第二行有三列,三個元素

我的問題:爲何在採用第二種方法賦值時,就會給一列進行賦值運算??
例如a[3][4] = ‘x’ , 結果整個第五列就都變成’x’

問題已解決!!

這個問題需要從內存的角度來考慮
如果採用第一種方法,int[,] a=new int[2,4]; 直接分配一塊 2*4 矩陣的內存。賦值就直接賦值到該元素上去。

但如果採用第二種方法,
int[][]a=new int[2][]; 只是開闢了一個2*?的首地址,後面都只是對首地址進行操作,也就是代表了一列。

得出結論:對於一個確定的矩陣,最好採用第一種方式,進行聲明。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章