一維陣列記憶體分析 靜態初始化詳解

2021-08-19 19:11:11 字數 1290 閱讀 4842

/*

陣列:1.陣列是一種引用型別

2.陣列是一種簡單的資料結構,線性的結構

3.陣列是乙個容器,可以用來儲存其他元素,陣列可以儲存任意資料型別的元素

4.陣列分為:一維陣列,二維陣列,三維陣列,多維陣列

5.陣列中儲存的元素型別是統一的

6.陣列長度不可改變,陣列一旦建立長度是不可變得,固定的

陣列拿首元素的記憶體位址作為陣列物件的記憶體位址

陣列中每乙個元素都是有下標的,有索引的

從0開始,任何乙個陣列都有乙個length屬性用來獲取陣列的長度

陣列的最後乙個元素下標是a1.length-1

陣列優點:查詢效率高

缺點:隨意的增刪效率比較低

陣列中儲存元素的型別是統一的,每乙個元素在記憶體中所佔的空間

大小是相同的,知道陣列的首元素的記憶體位址,要查詢的元素只要知道下標

就可以快讀的計算出偏移量,通過首元素記憶體位址加上偏移量

快速計算出要查詢元素的記憶體位址,通過記憶體位址快速定位該元素

所以陣列查詢元素的效率較高

隨機的對陣列進行增刪元素,當增加的元素的時候,為了保證陣列中元素

在空間儲存上是有序的,所以被新增元素位置後面所有的元素都要向後移動

刪除元素也是,後面的所有元素都要向前移動,所以陣列的增刪元素的效率很低

修改元素的效率還是很高的

*/public class ****1;

//byte型別的陣列

byte b2=;

//char型別的陣列

char c=;

//object型別的陣列,陣列裡存的是每乙個物件在堆裡的記憶體位址

object o1=new object();

object o2=new object();

object o3=new object();

object o=;}/*

初始化一維陣列有兩種方式:

1.靜態初始化

2.動態初始化

*/public class ****2;

//取得第乙個元素

system.out.println("第乙個元素是"+a[0]);

system.out.println("第二個元素是"+a[1]);

system.out.println("陣列中元素的個數是"+a.length);

//遍歷一維陣列

for(int i=0;isystem.out.println(a[i]);

}//動態宣告乙個int型別的陣列,最多可以儲存4個元素

int a1=new int[4];}}

一維陣列初始化

include includevoid main printf x n num printf x n num printf x n num 0 int num 10 直接初始化,只要有乙個元素初始化,則其他的元素會自動初始化為0 其他資料型別也如此 printf x n num int num 10...

C 中靜態初始化陣列與動態初始化陣列詳解

靜態初始化的陣列的長度必須是在程式中確定的常數,不能是由使用者輸入的變數 例子 int a 10 正確 student stud 10 正確 student是乙個學生類 int n cin tkgcbt hgt n int a n 錯誤 int n cin n student stud n 錯誤 s...

C 一維陣列初始化

源自博文 c 陣列的智慧型初始化 陣列的初始化在一般程式設計中經常會遇到 1.可以用迴圈對每個元素進行初始化 2.利用c 的陣列智慧型初始化 2.1 只要用到 預設初始化為0 2.2 否則不確定,隨機。這點類似於c 中的區域性變數和靜態變數 3.c standard library提供了乙個初始化的...