早教吧作业答案频道 -->数学-->
关于对数组元素a[i][j]的引用:*(*(a+i)+j)为什么也正确呢,*(a+i)等价于a[i]么?我怎么感觉应该是a+i与a[i]等价呢.
题目详情
关于对数组元素a[i][j]的引用:*(*(a+i)+j)为什么也正确呢,*(a+i)等价于a[i]么?
我怎么感觉应该是a+i与a[i]等价呢.
我怎么感觉应该是a+i与a[i]等价呢.
▼优质解答
答案和解析
首先a是二维数组的首地址,也是二维数组第一行的首地址,是个常量指针,
a[i]也是地址,表示第 i 行的地址,
a+i表示相对于地址a偏移 i 个单位的地址,与a[i]等同,
*(a + i)表示对 相对于地址a偏移 i 个单位的地址 取内容,即表示对a[i] 的地址 再取内容,因为a[i] 与&a[i]等同,所以取出的为a[i]的地址,也与a[i]等同,为同一地址.
而*(*(a+i)+j)表示二维数组第 i 行第 j 列的元素,与a[i][j]等同.
a[i]也是地址,表示第 i 行的地址,
a+i表示相对于地址a偏移 i 个单位的地址,与a[i]等同,
*(a + i)表示对 相对于地址a偏移 i 个单位的地址 取内容,即表示对a[i] 的地址 再取内容,因为a[i] 与&a[i]等同,所以取出的为a[i]的地址,也与a[i]等同,为同一地址.
而*(*(a+i)+j)表示二维数组第 i 行第 j 列的元素,与a[i][j]等同.
看了 关于对数组元素a[i][j]...的网友还看了以下:
xx[i][j]=xx[i][j]>>4+xx[i][j-1];和xx[i][j]=(xx[i][ 2020-04-25 …
请问这两个语句有什么区别啊?我正参加我们学校的数学建模,用lingo求解时出现了问题,1.min= 2020-05-13 …
1.设有变量定义inti,j;与表达式i==0&&j==0等价的表达式是:()(A)i==j(B) 2020-05-14 …
有二位数组a[n][m]对于指针问题*(*(a+i)+j)与a[i][j]为什么等价(i,j在n, 2020-06-12 …
model:sets:yh/1,2,3/:;fq/1,2,3/:;link(yh,fq):x,d; 2020-06-12 …
算法排序分析的问题代码:forj=2tolength[A]dokey=A[j]insertA[j] 2020-06-12 …
将其ASCII值按二进制移位(右移4位,高位补0,即xx[i][j]>>4),原字符值加右移后的值 2020-07-22 …
平面上两个向量i和j,满足如下性质:i·i=1,i·j=0,j·j=1.1).是否存在一个不等于i 2020-08-01 …
若一次函数y=kx+b过点(0,5),且与y=x^2-6x+5相交于另一点N(i,j),如果i≠j, 2020-11-01 …
空间解析几何里两向量向量积用到了ijk,这些是什么?为什么课本上写i*i=j*j=k*k=0,i*j 2020-11-28 …