直接上例程:
char array[3][3]={{'0','1','2'},{'3','4','5'},{'6','7','8'}};
int testFunc(char **array)
{
//printf("%c\n",array[1][2]);
}
int testFunc2(char (*array)[3])
{
printf("%c\n",array[1][2]);
return 0;
}
int testFunc3(char array[][3])
{
printf("%c\n",array[1][2]);
return 0;
}
int main(int argc, char *argv[])
{
testFunc((char **)array);
testFunc2(array);
testFunc3(array);
getchar();
return 0;
char array[3][3]={{'0','1','2'},{'3','4','5'},{'6','7','8'}};
int testFunc(char **array)
{
//printf("%c\n",array[1][2]);
printf("%c\n",*((char *)array + 3*1 + 2));
//或者
char (*p1)[3] = (char(*)[3])array;
printf("%c\n",p1[1][2]);
}
int testFunc2(char (*array)[3])
{
printf("%c\n",array[1][2]);
return 0;
}
int testFunc3(char array[][3])
{
printf("%c\n",array[1][2]);
return 0;
}
int main(int argc, char *argv[])
{
testFunc((char **)array);
testFunc2(array);
testFunc3(array);
getchar();
return 0;
}
以上三个函数的运行结果是一样的,从上也可以知道二维指针如何作为函数参数使用的。