例如,对于一个m行、n列的二维数组num,num[i][j](i≤m,j≤n)在内存中的地址应为:num+i×n+j。早上看到这里,始终对这句话难以理解,经过QQ朋友的指点以及自己在网上查找的资料,现在趁热打铁将自己的心得体会下下来,以共参考,也不知道理解的对不对,诶,资料难找啊:
首先NUM即数组名,就是数组的首地址,假设数组A,那么NUM的地址现在就是NUM[0][0],I为数组行数,比如:
0列 1列 2列 3列
NUM[3][4]= 0行 {1,2,3,4}
1行 {5,6,7,8}
2行 {9,10,11,12}
我们现在要寻找第1行第2列元素在内存中的地址,即首元素地址NUM开始向后移动i=1,n=4,j=2(1*4+2)一共6位,刚好到第1行第2列元素即元素7的地址。
我们现在要寻找第0行第1列元素在内存中的地址,即首元素地址NUM开始向后移动i=0,n=4,j=1(0*4+1)一共1位,刚好
到第0行第1列元素即元素2的地址。
也不知道理解的对不对,希望有朋友指点下,谢谢,仅仅是自己怕忘记,记录下
转载于:https://www.cnblogs.com/bruceloo/archive/2009/06/02/1494660.html
相关资源:数据结构—成绩单生成器