想问一下为什么
a[i][j]等价于(&a[0][0]+ni+j)
想问一下为什么
a[i][j]等价于(&a[0][0]+ni+j)
该回答引用ChatGPT
在C语言中,二维数组是在内存中连续存储的,其元素存储顺序为“行优先”,即先存储第一行的元素,再存储第二行的元素,以此类推。因此,对于一个二维数组 a[i][j],它的存储地址可以计算为 a[0][0] 的地址加上 i 行 j 列的偏移量。因为数组名 a 在表达式中会自动转换为指向数组第一个元素的指针,因此可以将 a[i][j] 表示为
a[i][j] = *(a[i] + j)