C语言程序设计中"二维数组中元素指针的表示"的例题,求详解

我不知道为什么程序运行结果是这个,有哪位大神告诉我为什么>o<

二维数组和指针
⑴ 用指针表示二维数组元素。
要用指针处理二维数组,首先要解决从存储的角度对二维数组的认识问题。
一个二维数组在计算机中存储时,是按行存储的,即先存储第一行的元素,再存储第二行的元素。
当把每一行看作一个整体,即作为一个大的数组元素时,原来的二维数组也就变成一个一维数组了。而每个大数组元素对应原来二维数组中的一行,称为行数组元素,显然每个行数组元素都是一个一维数组。
下面讨论二维数组元素和指针之间的对应关系,清楚了二者之间的关系,就能用指针处理二维数组了。
设p是指向二维数组a[M][N]的指针变量,若有:p=a[0]; 则p+j将指向a[0]数组中的元素a[0][j]。
由于a[0]、a[1]┅a[M-1]等各个行数组依次连续存储,则对于a数组中的任一元素a[i][j],指针的一般形式如下:p+i*N+j用"*"运算符表示为:*( p+i*N+j)同样,a[i][j]也可使用指针下标法表示,如下:p[i*N+j]
温馨提示:答案为网友推荐,仅供参考
相似回答