数组指针:int(p)[4]
指针数组:intp[4]
int a[3] = {0};
int (*p)[3] = &a;
printf("%p\n",a);
printf("%p",p);
打印地址一样:也就是说我们平时看到的一维数组取地址的名字本质就是一个数组指针,一维数组名是一级指针
void pt(int(*p)[3],int a) {
printf("%d\n",p[a-1][3-1]); //5
}
int main(int argc, const char * argv[]) {
int a[3][3] = {{32,32,3322},{3213,321,1},{254,51,5}};
pt(a,3);
return 0;
}
因此一个函数如何需要传入一个二维数组应该这么传递(正常传入一个一维数组是传一维数组成员的指针的)
函数指针: intsum(int a, int b)
指针函数: int(sum)(int a,int b)