二維陣列常用語表示表,表中的資訊以行和列的形式表示,第乙個下標代表元素所在的行,第二個下標代表元素所在的列。
二維陣列可以看做是特殊的一維陣列,因此,二維陣列有一下幾種宣告方式:
1.陣列元素型別 陣列名字;
宣告二維陣列**如下:
int a;或int a;
2.同一維陣列一樣,二維陣列在宣告時也沒有分配記憶體空間,同樣需要使用new關鍵字來分配記憶體,然後才可以訪問每個元素。
例如:int a;
a=new int[3][4]; 表示宣告了乙個3行4列的二維陣列。二維陣列常用語表示表,表中的資訊以行和列的形式表示,第乙個下標代表元素所在的行,第二個下標代表元素所在的列。
或 int a=new int[3][4];
二維陣列在宣告時可以先分配行,不分配列:int a=new int[3];
但是,建立二維陣列的時候,如果不寫『行』的話,就是錯誤的寫法:
比如:int a=new int[3]或int a=new int,都是錯誤的寫法,編譯無法通過。
初始化二維陣列:
初始化二維陣列有一下幾種方式:
1.如果在宣告二維陣列時並沒有指定列數的話,則賦值時列的值得個數不受限制:如下
int a=new int a[3];
a[0]=new int(表示第一行有三個元素,分別為2,3,5。第一行的第一列值為2,第一行的第二列值為3,第一行的第三列為元素值5);
a[1]=new int;(表示給第二行賦值兩個元素值)
a[2]=new nint;(表示給第三行賦值4個值。)
2.初始化二維陣列的第二種方式:()
int a=new int[3];
a[0]=new int[2];(表示定義行的列數。此處表示,第一行有兩列。)
a[0][0]=25,(第一行的第一列的值為25);
a[0][1]=30;(第一行的第二列的值為30);如果超出定義列的長度執行時則會丟擲陣列下標越界異常。比如:又定義了
a[0][2]=35;(則此時就已經越界了。)
3.初始化二維陣列的第三種方式。
int a=new int[3][3];
a[0][0]=30;表示第一行第一列的值為30,
a[0][1]=50;表示第一行第二列的值為50;
a0[2]=80;表示第一行第三列的值為80;
a[1]=new int;定義第二行個列的值。
4.在宣告二維陣列的同時就對二維陣列進行賦值
int c=new int ,,};定義了乙個二維陣列,有3行,乙個大括號表示1行。括號中的元素表示每一行個列的值。
或int c=,,};
二維陣列需要注意的問題:
在初始化二維陣列的時候只定義了陣列的行數,比如說 int a=new int[3],賦值時只是針對第一行進行了賦值:如:a[0]=new int:遍歷陣列時就會報空指標異常
如下:
解決方法:1:給定義的所有的行賦值2.或者宣告二維陣列時把列數定義好:這樣就不會出現空指標異常。但,沒有賦值的行,行中各列的值都顯示為0,因為int陣列的預設值為0.**如下:
shell學習day02 陣列
1 shell只支援一維陣列 2 陣列中各個元素用空格隔開。元素加不加引號都可,主要是為了避免元素本身包含空格而導致shell將其識別為兩個元素。如下面的測試 arr a b c arr2 a c b c echo echo for n in do echo ndone echo for n in ...
JavaSE 學習參考 二維陣列遍歷
二維陣列遍歷和一維陣列遍歷類似,只不過在遍歷到一維元素時,由於元素是一維陣列還需要遍歷,構成雙重迴圈。使用雙重迴圈遍歷二維陣列時,外層迴圈的次數使用陣列元素的length屬性 內層迴圈的次數是使用每個一維陣列的元素的lengthn 屬性。方式一 靜態初始化,每一維在定義時就確定 public cla...
day07 二維陣列
陣列名稱不可以代表儲存區 陣列名稱代表陣列裡第乙個儲存區的位址 可以對陣列名稱進行sizeof計算,結果 是整個陣列包含的總位元組個數 c99規範裡允許宣告陣列的時候使用變數表示 陣列裡的儲存區個數 這種陣列叫變長陣列 每次程式執行過程中陣列裡儲存區個數不會改變 如果程式多次執行則每次執行的時候陣列...