二维数组地址问题,求详解
二维数组A[10..20][5..20]采用行序为主方式存储,每个元素占4个存储单元,并且A[10][5]的存储地址是1000,则A[18][9]的地址是...
二维数组A[10..20][5..20]采用行序为主方式存储,每个元素占4个存储单元,并且A[10][5]的存储地址是1000,则A[18][9]的地址是
展开
2个回答
展开全部
二给数组在内在中是连续存储的,若有int A[20][20],则存储如下示意:
第1行:
a[0][0],a[0][1],a[0][2],a[0][3],a[0][4],a[0][5],a[0][6],a[0][7],a[0][8],a[0][9],a[0][10],a[0][11],a[0][12],a[0][13],a[0][14],a[0][15],a[0][16],a[0][17],a[0][18],a[0][19],
第2行:
A[1][0],A[1][1],...A[1][19],
......
第11行:
A[10][0],A[10][1],A[10][2],A[10][3],A[10][4],A[10][5],...A[10][19],
......
第19行:
A[18][0],A[18][1],A[18][2],A[18][3],A[18][4],A[18][5],A[18][6],A[18][7],A[18][8],A[18][9],...A[18][19]
......
计算一下从A[10][5]~A[18][9]经过了几个元素,用元素数乘以4,结果+1000,就是A[18][9]所在地址。所以1000+((18-10)x20-5+9)x4=1656.。
其中:(18-10)经过的行数,5开始列数,9是结束列数。
第1行:
a[0][0],a[0][1],a[0][2],a[0][3],a[0][4],a[0][5],a[0][6],a[0][7],a[0][8],a[0][9],a[0][10],a[0][11],a[0][12],a[0][13],a[0][14],a[0][15],a[0][16],a[0][17],a[0][18],a[0][19],
第2行:
A[1][0],A[1][1],...A[1][19],
......
第11行:
A[10][0],A[10][1],A[10][2],A[10][3],A[10][4],A[10][5],...A[10][19],
......
第19行:
A[18][0],A[18][1],A[18][2],A[18][3],A[18][4],A[18][5],A[18][6],A[18][7],A[18][8],A[18][9],...A[18][19]
......
计算一下从A[10][5]~A[18][9]经过了几个元素,用元素数乘以4,结果+1000,就是A[18][9]所在地址。所以1000+((18-10)x20-5+9)x4=1656.。
其中:(18-10)经过的行数,5开始列数,9是结束列数。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询