一个二维数组的行优先,列优先转换。
发布网友
发布时间:2022-04-29 09:20
我来回答
共1个回答
热心网友
时间:2022-06-25 09:41
对于行优先的数组,其中存储是元素是先行后列。若将题目中的元素M[0][0]存储在第一个地址空间,则元素M[8][5]的地址为8×10+5=85。
而对于列优先的数组,其中的元素存储则是先列后行。同样,若将题目中的元素M[0][0]存储在第一个地址空间,则元素M[5][8]的地址为((8-1)×9)+(5+1)=69。
这样,可以看出,按列存储的M[5][8]与行按行存储的M[8][5]不是同一个地址.
实际上,按行存储的元素M[8][5]对应按列存储的元素为M[4][10]=((10-1)×9)+(3+1)=85
注意:这里假设每个元素只占一个地址空间的前提下计算的结果。追问我也觉得奇怪,但书上的答案是这个。所以就过来问了。
追答那你觉得是书上的对还是不对!尽信书不如无书!问问你们老师吧,或许你就豁然开朗了!