类型“char *”和类型“char [10]”之间的区别

时间:2014-09-20 23:04:10

标签: c arrays pointers

如果我有这两个数组:

char * A[] = {"One", "Two", "Three","Four"};
char B[][10] = {"Five", "Six", "Seven", "Eight"};

我尝试执行以下操作:

B[0] = A[0];

编译器会给我以下错误:从类型'char *'分配类型'char [10]'时出现不兼容的类型

但如果我做相反的事情:

A[0] = B[0];

没有错误。感谢您的帮助,谢谢。

1 个答案:

答案 0 :(得分:-1)

数组和指针是不同的类型:数组的灵活性稍差,因为数组名称始终指向第一个元素,并且不能赋予新值。这就是为什么一个操作有效而另一个不是

的原因