问题
单项选择题
若二维数组a有m列,且设a[0][0]位于数组的第一个位置上,则计算任一元素a[i][j]刚在数组中的位置的式子为( )。
A.i*m+j
B.j*m+i
C.i*m+j-1
D.i*m+j+l
答案
参考答案:D
解析: 解此题要注意的问题有两个:一是,二维数组在内存中的存放形式是线性的,且是以行方式排列的。例如:a[3][4]在内存中是以a[0][0],a[0][1],a[0][2],a[0][3],a[1][0],a[1][1],a[1][2],…的顺序排列的。二是,数组的下标范围是从0开始至上限减1为止的。例如:a[5]中5个元素的下标范围是0~4。所以,元素a[i][j]刚在m列的二维数组a中,其上面已经有a[0][]~a[i-1][],i行元素,加上其左面的a[i][0]~a[i][j-1],j个元素,再加上自己所处的位置1就是该元素在数组中的位置值了。i行元素的个数是i*m,所以元素a[i][j]在数组中的位置为i*+j+1。得出结论后还应该验证一下,当i=0,j=0时,a[0][0]所处的位置代入式子为0*m+0+1:1,符合题意。故正确答案为D。