假设有6行8列的二维数组A(下标从1开始),每个元素占用8个字节,存储器按字节编址,已知A的起始基地址为2000,按行存储时元素A[3,6]的地址为
时间: 2023-08-31 20:40:41 浏览: 64
### 回答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。则数组最后一个元素的地址为 。
首先需要计算出数组A占用的总字节数。一个元素占用6个字节,共有6行8列,因此总共有48个元素,所以数组A占用的总字节数为 6 * 8 * 6 = 288。
数组最后一个元素的地址可以通过以下计算得到:
- 数组最后一个元素的行数为6,列数为8,所以它的下标为(6,8)。
- 数组中每个元素占用6个字节,因此最后一个元素的地址要比数组基地址2000高 48 * 6 = 288 个字节。
- 数组是按行存储的,因此最后一个元素所在的行是第6行,而每行有8个元素,因此最后一个元素之前还有 7 个元素。
- 最后一个元素的列数为8,所以它需要占用 8 * 6 = 48 个字节的空间。
- 综上,最后一个元素的地址为:2000 + (6-1) * 8 * 6 * 6 + (8-1) * 6 = 2454。
因此,数组最后一个元素的地址为2454。
已知二维数组A[0..5][0..7](行下标为0到5,列下标为0到7),每个元素占用2个字节存储,存储器按字节编址,若A[0][0]的地址为2000,则按行优先存储时元素A[3][4]的地址是( )
首先,每个元素占用2个字节存储,因此A[0][0]到A[5][7]总共占用6*8*2=96个字节。
其次,按行优先存储时,先存储第0行的8个元素,再存储第1行的8个元素,以此类推,最后存储第5行的8个元素。
因此,A[3][4]之前有3行,每行有8个元素,所以前面有3*8=24个元素,每个元素占用2个字节,因此前面有24*2=48个字节。
又因为A[0][0]的地址为2000,所以A[3][4]的地址为2000+48+4*8*2=2136。
因此,元素A[3][4]的地址是2136。