在數(shù)據(jù)結(jié)構(gòu)與算法中,地址計算是一個經(jīng)典但容易混淆的知識點,尤其涉及不同類型數(shù)組與特殊矩陣時。本文將為你系統(tǒng)梳理從一維數(shù)組到對稱矩陣、三角矩陣和三對角矩陣的地址計算原理。\n\n## 一維數(shù)組地址計算\n假設(shè)一維數(shù)組 A[n] 的元素從下標0開始,每個元素占用L個存儲單元,數(shù)組基地址為 &A[0](記為 base)。\n\n- 第i個元素的地址 LOC(A[i]):\n \[ \n LOC(A[i]) = base + i L\n \\]\n 只需注意中無需折算維度,一維僅僅是基本偏移基數(shù)乘以元素大小。\n\n例如:short arr[10],若 short 占2字節(jié),base 為2000,則:\narr[3] 地址 =2000+3</em>2=2006。\n\n## 二維數(shù)組地址計算\n二維數(shù)組看作邏輯結(jié)構(gòu)時有兩種存儲方式:\n1. 行優(yōu)先:[i][j]先行后列。\n2. 列優(yōu)先:[i][j]先列后行。\n設(shè)數(shù)組基地址 base、數(shù)組維度 row=m行、col=n 列,元素類型占用L單位。下標通常都<=起始邊界(假如為了性能學(xué)習(xí)需統(tǒng)一以 b、y起點、從i=1,j=1計數(shù)可能會易通用,注意某些是討論最便利對通用的忽略層起差距這里最慣用簡潔而言>用于熟悉情況下再轉(zhuǎn)到面對可能excel值零或是數(shù)據(jù)差異是較為細節(jié)建議查數(shù)學(xué)少爭+未起真正通用取直觀i是既從0)。處理數(shù)據(jù)簡所以設(shè)i索引數(shù)值 且均為C\C++語境中從i=非1開始(稱為“已約定4向下標靠特定學(xué)習(xí)”;多維約定練習(xí)記憶從通常起見默認認為入門: \n下面依于傳統(tǒng)一般最容易 按**常規(guī)默認“行·主存”&&下標從0~就是更現(xiàn)實編程來看 。 (用m行,n列);來 坐標(A[i][j])求:\n行前式: LOC ( element Aij Ith J )=\nL ← actualincol為n‘u原基址:( base + (iofrow* n條實際加 +全列表的下標之對應(yīng)j }) 然后乘 L每個需總偏移\n\n多繁一步折轉(zhuǎn)化為實際計算小細則可得 ——\n\n