二维数组A[15][20],已知A[10][10]的存储地址为3000,每个数组元素占有4个存储单元,若按照行主序存储则A[13][18]的地址为 ;若按照列主序存储为 。
时间: 2023-09-30 08:09:47 浏览: 26
按照行主序存储,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。
二维数组a[10][50]最后一个元素的首地址
二维数组a[10][50]最后一个元素的首地址可以通过以下方式获取:
```c++
int* lastElement = &a[9][49]; // 最后一个元素的下标是[9][49]
```
这里使用取地址符&获取二维数组a的最后一个元素的地址,即a[9][49]的地址。