二维数组与指针
请教各位高人,我们知道如果有int a[n], *p;
那可以用p=a来指向一维数组a,指针p的移动是一次移动向下移动一个地址。
但是如果有
int a[3][4],*p;
那么p++移动的时候每次指向的是a[0][0]、a[1][0]、a[2][0]的地址,如果要指向a[2][3],那该如何控制指针了?请详细说明一下喽,实在很模糊喽!
*(p+2*4+3)
*(p+2*4+3)
什么意思啊!
没道理的撒
可以了???
是可以用来指向二维数组了还是一维数组,如果是二维数组的话那要怎么运用呢?
int *p=a[0];
LZ概念浑浊..
如果定义 指向行的指针 (*p)[4]=a;.那么a[2][3]就是 *(*(p+2)+3))
如果定义 指向列的指针 *p=a[0]; 那么a[2][3]就是 *(p+2*4+3)
楼主应该还没弄明白行和列的区别..乌鸦给他解释一下吧
PS: ANSI C中 int *p=a; 是错误的