数组A[-1..5,2..8,1..8]以行为主序储存,设第一个元素的首地址为54,每个元素的长度为5,求元素A[0,6,5]的存储地址。
请讲解一下,谢谢!
參考答案:A是一个三维数组,它在内存中的存储地址是连续的。如果元素A[0,6,5]在整个数组中是第i个元素,那么它的存储首地址为:(i-1)*5+54。接下来的问题在于求i:由于是以行为主序存储,A[-1,2..8,1..8]的元素都排在A[0,6,5]的前面,这里有(8-2+1)*(8-1+1)=56个;A[0,2..5,1..8]的元素都排在A[0,6,5]的前面,这里有(5-2+1)*(8-1+1)=32个;A[0,6,1..4]的元素都排在A[0,6,5]的前面,这里有4个;所以i=56+32+4+1=93。故A[0,6,5]的首地址为:(93-1)*5+54=514。