假设有6行8列的二维数组A(下标从1开始),每个元素占用8个字节,存储器按字节编址,已知A的起始基地址为2000,按行存储时元素A[3,6]的地址为
时间: 2023-08-31 22:40:41 浏览: 113
### 回答1:
按行存储时,数组A的每一行都是连续存储的,每一行有8个元素,每个元素占用8个字节,所以:
- 第1行的起始地址为2000
- 第2行的起始地址为2000 + 8*8 = 2056
- 第3行的起始地址为2000 + 2*8*8 = 2080
因此,A[3,6]所在的地址为:
```
A[3,6] = 2080 + (3-1)*8*8 + (6-1)*8 = 2276
```
所以元素A[3,6]的地址为2276。
### 回答2:
首先,假设二维数组A按行存储。每行有8列,每个元素占用8个字节,所以每行占用的字节数为8 * 8 = 64字节。
已知起始基地址为2000,那么A[1,1]的地址为2000。
A[3,6]跨过了前两行和前5列,所以它所在的行占用字节数为(3-1) * 64 = 128字节。而A[3,1]地址为2000 + 128 = 2128。A[3,6]在该行中的第6个元素,所以它所在的列占用字节数为(6-1) * 8 = 40字节。所以A[3,6]的地址为2128 + 40 = 2168。
因此,A[3,6]的地址为2168。
相关问题
假设有6行8列的二维数组A(下标均从1开始),每个元素占用6个字节,存储器按字节编址,已知A的基地址为2000。则数组最后一个元素的地址为 。
由于每个元素占用6个字节,因此每一行占用的字节数为 $8\times 6=48$ 字节。因此,数组中第 $i$ 行的起始地址为 $2000+(i-1)\times 48$。
最后一个元素位于第6行第8列,因此它的行下标为6,列下标为8。该元素在数组中的偏移量为 $(6-1)\times 48+(8-1)\times 6=267$ 字节。
因此,该元素的地址为 $2000+267=2267$。
已知二维数组A[0..5][0..7](行下标为0到5,列下标为0到7),每个元素占用2个字节存储,存储器按字节编址,若A[0][0]的地址为2000,则按行优先存储时元素A[3][4]的地址是( )
由于每个元素占用2个字节存储,因此A[0][0]到A[5][7]的地址分别为:
A[0][0]: 2000
A[0][1]: 2002
A[0][2]: 2004
...
A[1][0]: 2016
A[1][1]: 2018
...
A[5][6]: 2152
A[5][7]: 2154
因此,按行优先存储时,元素A[3][4]的地址为:
A[3][4] = 2000 + (3*8+4)*2 = 2088
阅读全文