对于已正确定义的二维数组a, *(a[i]+j)与a[i][j]的含义相同是对的吗?
展开全部
是的,两种不同的写法,本质都是取那个地址存在的值。
a[i][j]是第i行(0算起)第j列(0算起)的元素值。a+i是第i行的行指针,那么*(a+i)就是第i行第0个元素的指针,自然*(a+i)+j就是第i行的第j个元素的指针了,最后通过这个指针用*取出来的值*(*(a+i)+j)不就是第i行第j列的值,这就和a[i][j]完全是一回事。
扩展资料:
二维数组A[m][n],这是一个m行,n列的二维数组。设a[p][q]为A的第一个元素,即二维数组的行下标从p到m+p,列下标从q到n+q,按“行优先顺序”存储时则元素a[i][j]的地址计算为:
LOC(a[i][j]) = LOC(a[p][q]) + ((i − p) * n + (j − q)) * t
按“列优先顺序”存储时,地址计算为:
LOC(a[i][j]) = LOC(a[p][q]) + ((j − q) * m + (i − p)) * t
存放该数组至少需要的单元数为(m-p+1) * (n-q+1) * t 个字节
参考资料来源:百度百科-二维数组
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询