二维数组A[15][20],已知A[10][10]的存储地址为3000,每个数组元素占有4个存储单元,若按照行主序存储则A[13][18]的地址为 ;若按照列主序存储为 。
时间: 2023-09-30 18:09:47 浏览: 56
按照行主序存储,A[13][18]可以计算如下:
- A[10][10]的地址为3000,则A[10][11]的地址为3000+4=3004,A[10][12]的地址为3000+8=3008,以此类推。
- A[11][10]的地址为3000+15*4=3060,则A[13][10]的地址为3060+6*20*4=4800,A[13][11]的地址为4800+4=4804,以此类推。
- 因此,A[13][18]的地址为4800+8*4=4832。
按照列主序存储,A[13][18]可以计算如下:
- A[10][10]的地址为3000,则A[11][10]的地址为3000+15*4=3060,A[12][10]的地址为3060+15*4=3120,以此类推。
- A[10][11]的地址为3000+4=3004,则A[10][13]的地址为3004+2*15*4=3124,A[11][13]的地址为3124+20*4=3204,以此类推。
- 因此,A[13][18]的地址为3204+3*4=3216。
相关问题
二维数组A[15][20],已知A[10][10]的存储地址为3000,每个数组元素占有4个存储单元,若按照行主序存储则A[13][18]的地址为
按照行主序存储,数组A[13][18]的地址可以通过以下计算得出:
首先,A[10][10]的地址为3000,它在二维数组中的行下标为10,列下标为10。每个数组元素占有4个存储单元,因此A[10][10]的结束地址为3000 + 4 = 3004。
接下来,我们需要计算A[13][18]在内存中的地址。它在二维数组中的行下标为13,列下标为18。根据行主序存储的规则,每一行的元素都是连续存储的,所以A[13][18]的地址应该比A[10][10]的地址大。
首先计算A[10][0]的地址,它的行下标为10,列下标为0。根据行主序存储的规则,它的地址应该比A[10][10]的地址小,因此可以通过以下公式计算出A[10][0]的地址:
A[10][0]的地址 = 3000 - 10 * 20 * 4 = 2200
接下来计算A[13][0]的地址,它的行下标为13,列下标为0。根据行主序存储的规则,它的地址应该比A[10][0]的地址大,因此可以通过以下公式计算出A[13][0]的地址:
A[13][0]的地址 = 2200 + 13 * 20 * 4 = 3880
最后,计算A[13][18]的地址,它的行下标为13,列下标为18。根据行主序存储的规则,它的地址应该比A[13][0]的地址大,因此可以通过以下公式计算出A[13][18]的地址:
A[13][18]的地址 = 3880 + 18 * 4 = 3952
因此,按照行主序存储,二维数组A[13][18]的地址为3952。
16.二维数组A[15][20],已知A[10][10]的存储地址为3000,每个数组元素占有4个存储单元,若按照行主序存储则A[13][18]的地址为 ;若按照列主序存储为 。
按照行主序存储时,我们可以计算出A[13][18]的存储地址为:
```
A[13][18] = A[10][10] + (13-10)*20 + (18-10)
= 3000 + 60 + 8
= 3068
```
其中,(13-10)*20表示行数之差乘以每行的元素个数,(18-10)表示列数之差。因为每个数组元素占4个存储单元,所以需要加上相应的偏移量。
按照列主序存储时,我们可以计算出A[13][18]的存储地址为:
```
A[13][18] = A[10][10] + (18-10)*15 + (13-10)
= 3000 + 120 + 3
= 3123
```
其中,(18-10)*15表示列数之差乘以每列的元素个数,(13-10)表示行数之差。因为每个数组元素占4个存储单元,所以需要加上相应的偏移量。
阅读全文