陣列是最常用的一種資料結構,是效率最高的儲存和元素訪問的方式。格式:特點:線性順序、連續儲存。
使用陣列時需要注意:
陣列一旦初始化,其長度便固定,不能修改
陣列元素型別可以是基本資料型別,也可以是引用資料型別
陣列通過陣列名[索引]這種方式訪問陣列元素。
陣列元素型別 陣列名字;
陣列元素型別[
] 陣列名字;
例如:
int arr1;
int[
] arr2;
如果只是完成上面的宣告,那麼這個陣列是不能使用的,此時arr1和arr2都是null。只有進行初始化才會給陣列真正的分配空間。
1、陣列元素型別 陣列名 = new 陣列元素型別[陣列長度];
使用這種方式宣告陣列,是陣列長度初始化,陣列的內容為對應資料型別的預設值。
例如,建立乙個長度為5的字串陣列。
string[
] arr =
newstring[5
];
由於沒有給陣列元素賦值,所以每個陣列元素都是預設值,而string型別的預設值是null,因此arr這個陣列長度是5,其中每個陣列元素值是null。
2、陣列元素型別 陣列名 = new 陣列元素型別 ;
陣列標準初始化,直接給陣列元素賦值。
例如,建立乙個長度為5的int陣列
int
arr =
newint
;
上面**建立了乙個長度為5,陣列元素為1,2,3,4,5的int型陣列arr。
3、陣列元素型別 陣列名 = ;
陣列省略初始化,僅能在宣告陣列同時初始化時使用。
例如,建立乙個長度為5的int陣列
int
arr =
;
和字串不同,陣列的建立中沒有常量池的概念,因此這種建立方式和上面兩種new的建立方式沒什麼區別,都是新開闢的位址存放陣列。
如果是先宣告陣列,然後初始化,那麼上面的省略初始化方法不能使用。
例如:
int
arr1;
int[
] arr2;
int[
] arr3;
arr1 =
newint[5
];// 可以
arr2 =
newint
;// 可以
arr3 =
;// 這種方式不可以,報錯
在先宣告,後初始化的情況下,不能使用陣列名 = ;的省略形式來賦值。
陣列索引從0開始到 (陣列長度-1)即 [0,length - 1]。
想要得到陣列長度可以使用物件名.length。
對比記憶:字串長度使用物件名.length()
注意它們之間的區別:陣列長度使用的是例項物件,而字串長度使用的例項方法。
在使用陣列的時候,一定要注意索引的取值範圍,不然很容易出現陣列越界的異常。
當陣列長度定下來之後,便無法更改!!
string[
] s1;
//有變數,沒物件,不能直接使用,必須初始化
string[
] s2 =
newstring
;//有變數,有物件,陣列長度為0
string[
] s3 =
newstring[5
];//有變數,有物件,陣列長度為5,陣列中的string元素的值是null
思考下面**的輸出
int
a =;int
b = arr1;
int[
] c =
;for
(int i =
0; i < arr2.length; i++
)
輸出:
a[0]
=2 b[0]
=2 c[0]
=1a[1
]=2 b[1]
=2 c[1]
=1a[2
]=2 b[2]
=2 c[2]
=1
在**中,我們只修改了b陣列的值,但是在輸出的結果,我們發現a的值也發生了變化,這是為什麼?。
這是因為陣列是引用資料型別,在b = a;這條語句中是a將自己指向的陣列的位址傳給了b,此時a和b都指向同乙個位址,修改b陣列元素的值就相當於修改a陣列元素的值。而c是指向另一塊記憶體空間的,a、b修改陣列元素的值並不會影響c所指向的記憶體空間,因此c陣列的值並沒有變化。
python 建立二維陣列和一維陣列
一維陣列 二維陣列 寫 的時候需要使用python建立二維陣列 num list 0 5 2 print num list 輸出 0,0,0,0,0 0,0,0,0,0 看輸出覺得這種方法是對的,結果程式出現了錯誤,經過分析,這種建立二維陣列的方式存在問題 num list 0 0 1 print ...
一維二維陣列的建立與遍歷
一 一維陣列的建立與遍歷 方法一 型別 變數 new 型別 l例如 string a new string var int 若使用new關鍵字,則方括號內必須宣告乙個int型別的值來表示長度 也可以 string a new string 方法二 string a 一維陣列的遍歷 for和forea...
c 一維陣列的建立和排序
bool featurecmp keypoint f1,keypoint f2 int main 建立一維陣列 size t m 3 假定陣列長度為m double matched matched new double m 動態分配空間 一維陣列賦值 matched 0 2 matched 1 1 ...