如何计算多维数组的地址数据结构

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

多维数组地址的计算方法一、二维数组

若求Cl jJ2在内存中的存储位置:1・a hj2在dj〜°久+1段内的第丿・2的位置上:2・dj前共有力段,每段加个存储单元,HP:h2xj}.

因此a jJ2的存储地址为(英中厶为基本类型数拯的字节数):

LOC(j、9j2)= SC(0,0)+ 仮 x 人 + j2)L

若求a j}j2j i在内存中的存储位置,需根据各维下标的变化分段来计算:

1.当第一维下标为力时,djl前共有力段,其中每段内均可依次被划分成加段,加段又被划分成加个已不可再分的最小基本类型数据单元,因此前第“丿]段前中共有h2 xZ?3 x j}个存储单元:

2・当第二维下标为力时,"恥在第绻 至纬+1段内,本段内幻』2前共有力段,其中每段内均可依次被划分成加个已不可再分的最小基本类型数据单元,因

此前第a

jJ 2段前中共有仇x j 2个存储单元: 3.当第3维下标为力时,a

j i j 2j i 在幻也至幻也+1段内,本内段共有力个最基本的基本类型的数据单元,即丿3 因此,a jiJih 的存储地址的字节数为(貝中厶为基本类型数据所占的字节数):

LOC (7i ,J 2 '人)=LOC

(0,0,0)+ (6 x b 3 x J J + & x J 2)+J 3)L 三.多维数组

C 程序表示:A[J1][J2][ .. ][Jn]>其数据结构定义为:a ・ …jj 力=1,2, ......... ,b\i J2=l,2, . 02, ............ , Jn=l,2, .. ,bno 内存存储排列如下图:

若求 在内存中的存储位置,需根据各维下标的变化分段来计算:

• • •

1. 当第一维下标为力时,a hir-ir j n 在你 至绻+1段内JlJV'Jn 的位置上,其中你 前共有力段,其中每段内均可依次被划分成加段,加段又被划分

成加段,加段又可分为伽段, ................ ,如此划分下去,直至划分至b”个已不可再分的最小基本类型数据单元为止,因此前第。Z 段前中共有

b2xb3xb4x........ xx b n x拆个存储单元:

• • •

2.当第二维下标为力时,a j[j2-jr j n在第段内的a hh至幻』+1段内的厶丿4…厶,你内a j l j2前共有力段,英中每段内均可依次被划分成加段,

6段又可分为山段,加段又被划分成加段,........... ,如此划分下去,直至划分至心个已不可再分的最小基本类型数据单元为止,因此前第。_/』段前中共有

h3xb4 x ..... x /?zr-I xb n xL 个存储单元;

3................. :

• • •

4.当第i维下标为力时,…Z…人在口维坐标下第段内第至"/J2…知段内的丿J+1…丿",段内前共有》段,

其中每段内均可依次被划分成伤+】段,伤+】段又可分为伤+2段,山+2段又可分为h+3段,..... ,如此划分下去,直至划分至b”个已不可再分的最小基本类型数据单元为止,因此前第"川2…Z段前中共有bg x bi+2 X X /?…_! x b n X ji个存储单元

5.................

6.当第"维下标为%时,a jj2-Jrjn在小维的a jjy-j i-j…-i至%…jrh段内的第厶个位置上,本段内均为最基本的基本类型的数据单元,不能再继

续划分,因此a j[j2-jr i n在本段内的共有人个存储单元

最终得出,%・・』・・讥的存储地址的字节数为(其中厶为基本类型数摒所占的字节数):

LOC(J,山...... J J = LOC(0,0)+ (血xb3xb4x.......... x 悩xb n x j})+(b3xb4x .......... x xb n x j2)+ (b4xb5x............... x b 心xb n xj3)++ 亿 xZz +j n)L

相关文档
最新文档