1. **數組定義**:
? ?- 數組是存放在連續內存空間上的相同類型數據的集合。
2. **數組特性**:
? ?- 數組下標從0開始。
? ?- 數組的內存空間地址是連續的。
3. **數組操作**:
? ?- 數組可以通過下標索引快速訪問元素。
? ?- 數組元素的刪除或添加可能需要移動其他元素,因為內存地址連續。
4. **數組元素移動示例**:
? ?- 刪除數組中某個元素時,需要移動該元素之后的所有元素。
5. **C++中數組與vector的區別**:
? ?- C++中的`vector`底層實現是數組,但`vector`是容器,不是數組。
? ?- 數組的元素不可刪除,只能被覆蓋。
6. **二維數組**:
? ?- 二維數組在內存中的存儲方式,不同編程語言可能不同。
7. **C++中二維數組的連續性**:
? ?- C++中二維數組的內存地址是連續的,通過測試代碼和內存地址可以驗證這一點。
8. **Java中二維數組的非連續性**:
? ?- Java不暴露元素的地址給程序員,二維數組的每一行頭結點地址沒有規則,不連續,尋址操作完全交給虛擬機。
9. **內存地址理解**:
? ?- 內存地址以16進制表示,相鄰元素地址差代表了數據類型的大小(例如,int型數組相鄰元素地址差為4個字節)。
10. **Java中數組元素地址示例**:
? ? - Java中打印二維數組的引用地址顯示,每行數組的地址是不同的,表明Java中二維數組的行不是連續存儲的。
?