陣列(Array)
三維陣列
- 多維陣列儲存於記憶體的方法只有Row-Marjor、Column兩種
- 由1起始:A[1:u1, 1:u2: 1: u3]
- 假設I0為陣列起始位址,d為每個元素的大小
- Row-Major:有u1個二維陣列,每個二維陣列大小為u2×u3
- 第1個元素為A[1, 1, 1],位址公式為:
- A[i, j, k ]= I0+[ (i-1)×u2u3 + (j-1)×u3 + (k-1) ]×d
- Column-Major:有u3個二維陣列,每個二維陣列大小為u2×u1
- 第1個元素為A[1, 1, 1],位址公式為:
- A[i, j, k ]= I0+[ (i-1) + (j-1)×u1 + (k-1)×u1u2 ]×d
- 由l1,l2,l3起始:A[l1:u1, l2:u2, l3:u3]
- 假設I0為陣列起始位址,d為每個元素的大小
- Row-Major:有u1-li個二維陣列,每個二維陣列大小為(u2-l2)×(u3-l3)
- 第1個元素為A[1, 1, 1],位址公式為:
- A[i, j, k ]= I0 + [ (i-l1) × (u2-l2+1)×(u3-l3+1) + (j-l2)×(u3-l3+1)+(k-l3)]×d
- Column-Major:有u3-l3個二維陣列,每個二維陣列大小為(u2-l2)×(u1-l1)
- 第1個元素為A[1, 1, 1],位址公式:
- A[i, j, k ]= I0 + [ (i-l1) + (j-l2)×(u1-l1+1)+(k-l3)×(u2-l2+1)×(u1-l1+1)]×d