数据结构中求二位数组的存储地址

有一个二维数组A,行下标的范围是0到8,列下标的范围是1到5,每个数组元素用相邻的4个字节存储。存储器按字节编址。假设存储数组元素A[0,1]的第一个字节的地址是0,存储数组A的最后一个元素的第一个字节的地址是( B)A.132B.176C.188D.184
这个怎么我算出来是196
(9×5+4)×4

你是不是算错了
每行有5个元素,每个元素占据4个字节,所以每行占据 5 * 4 = 20 字节。

总共有9行,所以总共占据 9 * 20 = 180 字节。

找的是数组A的最后一个元素A[8,5]的第一个字节的地址,而不是整个数组占据的字节数。A[8,5]位于第9行第5列,对应的地址是:

(9 - 1) * 20 + (5 - 1) * 4 = 8 * 20 + 4 * 4 = 160 + 16 = 176

所以是B.176。