二维数组的传参
二级数组传递参数时,不能以一个二级指针的方式,以二级指针的方式只传递了这个二级数组的首地址,但没有带出这个二维数组各元素的地址,编译器不能通过二级指针的移动寻找其元素。对于二级数组要用数组指针的形式传参
#include <stdio.h>
void print_arr (char (*a)[4])
{
int i;
for(i = 0; i < 3; i++)
printf("%s\n", a[i]);
}
int main()
{
char *str_arr[3][4] = {"yes", "no", "uncertain"};
print_arr (str_arr);
return 0;
}
如果要以二级指针的形式传参,可以在定义为字符串指针数组的形式
char *str_arr[] = {"yes", "no", "uncertain"};
void print_arr (char **a)
{
int i;
for (i=0; i<3;i++)
printf("%s\n", *(a+1));
}