为什么数组变量不能指向其他地方?

时间:2016-01-10 08:10:59

标签: c

我试图理解为什么数组变量不能指向其他地方?

示例代码:

 char s[] = "How big is it";
 const char *t = s;

这是代码,我创建一个示例数组s[]并为其赋值{#34;它有多大",现在我创建一个字符指针数组并为其赋值s&# 39;地址。

现在当我说出这样的话时,编译器会给我一个错误:

 s=t;      ----> compiler error

为什么?是因为字符串文字引用会丢失吗?

1 个答案:

答案 0 :(得分:0)

=符号在C中有两种不同的含义:初始化赋值

当您编写char s[]="How big is it";时,初始化一个新数组,其中包含字符串文字的字符,包括终止空值。

该语言根本不允许赋值到数组。无论如何它都没有意义,因为一旦定义,数组就会识别一个内存位置。然后,您只能分配给数组元素或使用在引擎盖下执行该操作的函数(memxx,strxx)。