早教吧 育儿知识 作业答案 考试题库 百科 知识分享

关于对数组元素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是二维数组的首地址,也是二维数组第一行的首地址,是个常量指针,
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]...的网友还看了以下: