对于一个m行、n列的二维数组在内存中的地址应为:

it2025-05-22  71

例如,对于一个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

相关资源:数据结构—成绩单生成器
最新回复(0)