main()
{
int a[2][2]={0},z[1]={2};
// a[0]=z;
scanf("%d",&a[0]);
// a[0]=1;
printf("%d",a[0][0]);
char *s[2];
s[0]="abc";
}
定义一个数组后,不能再整体赋值,把另外一个数组直接传递给这个数组,在编译器的ERROR看到提示是数据类型不同,我猜测是因为z被视作了一个指针,而a[0]是一个整型,编译器又不能转换,所以行不通,在这个推测下,我又尝试了直接给a[0]赋值一个整数,但是依旧无法通过编译,可能是因为a[2][2]为一个二维数组,但是神奇的是,我们用scanf函数,却又可以给a[0],我不知道其中原理,同时char *s[2]; s[0]="abc";这样的数组为什么也能通过编译,s[1]不应该也是一个指针吗,这其中是否进行了类型转换?