C语言中二维字符串数组作为参数传递的问题!
我定义了一个二维数组存放字符串,a[2][20]
而且它会作为参数传递给其他函数
有三种写法,大家帮忙看看哪种是对的
代码如下:
1、
#include<stdio.h>
#include<string.h>
int change(char a[2][20])
{
int i=0;
char change[10];
for(i=0;i<2;i++)
{
strcpy(change,a[i]);
printf("the change is %s\n",change);
}
return 0;
}
int main()
{
char a[2][20]={"123","abc"};
change(a);
return 0;
}
2、
#include<stdio.h>
#include<string.h>
int change(char *a)
{
int i=0;
char change[10];
for(i=0;i<2;i++)
{
strcpy(change,a[i]);
printf("the change is %s\n",change);
}
return 0;
}
int main()
{
char a[2][20]={"123","abc"};
change(a);
return 0;
}
为什么?难道不能以指针形式传递二维数组?我怎么换作一维数组就可以?