关于指针与二维数组的问题,谢谢各位了。
#define TH 3void fun2(int (*p)[TH])
{
printf("success fun2\n");
//printf("%d,",p[0][0]);
//printf("%d,",p[2][2]);
//printf("%d,",*((*p+1)+1));//12
printf("%d,",*((*p+5)));//98
printf("%d,",*((*p+5)+3));//21
//printf("%d",*(*(p+3)+1));
}
void main()
{
int b[4][TH]={34,23,12,
78,65,98,
32,56,21,
54,27,81};
}
1.首先,#define TH 3这种形式是没有问题的,可以用。
2.*(*p)=34 为数组的第一个元素
3.*(*(p+3)+1)=27 一般形式为*(*(p+行)+列)
4.*(*p+5)=98 一般形式为*(*p+i) 其中0<=i<=n-1,其中n
为元素的个数
5.*((*p+5)+3)与4所代表的是一样的.
请问针对第三条有没有先加行再加列的形式的了呢,我没想的出来。