已知二维数组A[m][n]采用行序为主方式存储,每个元素占k个存储单元,并且第一个元素的存储地址是
已知二维数组A[m][n]采用行序为主方式存储,每个元素占k个存储单元,并且第一个元素的存储地址是LOC(A[0][0]),则A[i][j]的地址是______。为什么?...
已知二维数组A[m][n]采用行序为主方式存储,每个元素占k个存储单元,并且第一个元素的存储地址是LOC(A[0][0]),则A[i][j]的地址是______。为什么?
展开
1个回答
展开全部
答案是 LOC(A[0][0]) + (i * n + j) * k
因为是采用行序为主方式存储的,即先存第1行,再第2行、第三行……这样。
所以A[i][j]前面有i行元素,每行元素有n个;A[i][j]为本行第j+1个元素,本行有j个元素位于A[i][j]前,所以A[i][j]到数组的起始位置处,中间共有i * n + j个元素,每个元素占k个存储单元,所以就是LOC(A[0][0]) + (i * n + j) * k
因为是采用行序为主方式存储的,即先存第1行,再第2行、第三行……这样。
所以A[i][j]前面有i行元素,每行元素有n个;A[i][j]为本行第j+1个元素,本行有j个元素位于A[i][j]前,所以A[i][j]到数组的起始位置处,中间共有i * n + j个元素,每个元素占k个存储单元,所以就是LOC(A[0][0]) + (i * n + j) * k
更多追问追答
追问
你的行和列都从0开始的还是1开始的啊
追答
从0开始啊,因为它说了第一个元素是A[0][0],所以行和列都是从0开始的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询