This commit is contained in:
krahets
2023-02-26 19:53:26 +08:00
parent cf26cd551a
commit 9cd475d8c2
29 changed files with 180 additions and 0 deletions

View File

@@ -8,6 +8,8 @@ comments: true
![数组定义与存储方式](array.assets/array_definition.png)
<p align="center"> Fig. 数组定义与存储方式 </p>
!!! note
观察上图,我们发现 **数组首元素的索引为 $0$** 。你可能会想,这并不符合日常习惯,首个元素的索引为什么不是 $1$ 呢,这不是更加自然吗?我认同你的想法,但请先记住这个设定,后面讲内存地址计算时,我会尝试解答这个问题。
@@ -106,6 +108,8 @@ comments: true
![数组元素的内存地址计算](array.assets/array_memory_location_calculation.png)
<p align="center"> Fig. 数组元素的内存地址计算 </p>
```shell
# 元素内存地址 = 数组内存地址 + 元素长度 * 元素索引
elementAddr = firtstElementAddr + elementLength * elementIndex
@@ -405,6 +409,8 @@ elementAddr = firtstElementAddr + elementLength * elementIndex
![数组插入元素](array.assets/array_insert_element.png)
<p align="center"> Fig. 数组插入元素 </p>
=== "Java"
```java title="array.java"
@@ -527,6 +533,8 @@ elementAddr = firtstElementAddr + elementLength * elementIndex
![数组删除元素](array.assets/array_remove_element.png)
<p align="center"> Fig. 数组删除元素 </p>
=== "Java"
```java title="array.java"