c语言指针表示二维数组

img


划线的这个嵌套循环到底是什么意思,恳请各位专业人士指点迷津谢谢

*(p+4*i+j)等价于p[i][j]
4*i是行,j是列

在讲这个问题之前,你需要先了解一下什么是线性表
数组是一种线性表,它的地址是连续的
如果a是一个n行m列的二维数组,指针p指向的是数组a的首地址,
那么a[i][j]的地址就是p+i*n+j

这是用一维数组模拟二维,4*i,表示,一行四个元素,因为j从0到3,遍历四个空间,i自加后便跨越一行,进入下一行进行打印