二維數組的表示方法
第一種表示方法:
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*?的首地址,後面都只是對首地址進行操作,也就是代表了一列。
得出結論:對於一個確定的矩陣,最好採用第一種方式,進行聲明。