在二维数组a[ i ][ j ]中*(a+i)表示第i行的首地址,为什么不是表示第i行首元素呢?请各位大侠说的具体点,讲得深一点.小弟在此特别感谢了.从内存的角度说一下.

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 05:03:35
在二维数组a[ i ][ j ]中*(a+i)表示第i行的首地址,为什么不是表示第i行首元素呢?请各位大侠说的具体点,讲得深一点.小弟在此特别感谢了.从内存的角度说一下.

在二维数组a[ i ][ j ]中*(a+i)表示第i行的首地址,为什么不是表示第i行首元素呢?请各位大侠说的具体点,讲得深一点.小弟在此特别感谢了.从内存的角度说一下.
在二维数组a[ i ][ j ]中*(a+i)表示第i行的首地址,为什么不是表示第i行首元素呢?
请各位大侠说的具体点,
讲得深一点.
小弟在此特别感谢了.
从内存的角度说一下.

在二维数组a[ i ][ j ]中*(a+i)表示第i行的首地址,为什么不是表示第i行首元素呢?请各位大侠说的具体点,讲得深一点.小弟在此特别感谢了.从内存的角度说一下.
反过来思考一下:
如果 *(a+i) 是第i行的行首元素,那么第i行的第二个元素应该怎么表示呢?
a+i 和 *(a+i)虽然值相等,但是他们的意义是不同的
a+i 是数组指针的指针,p=a+i;p++;跳过一行
*(a+i)是指针,p=*(a+i);p++;跳过一列