我试图理解为什么数组变量不能指向其他地方?
示例代码:
char s[] = "How big is it";
const char *t = s;
这是代码,我创建一个示例数组s[]
并为其赋值{#34;它有多大",现在我创建一个字符指针数组并为其赋值s&# 39;地址。
现在当我说出这样的话时,编译器会给我一个错误:
s=t; ----> compiler error
为什么?是因为字符串文字引用会丢失吗?
答案 0 :(得分:0)
=
符号在C中有两种不同的含义:初始化和赋值。
当您编写char s[]="How big is it";
时,初始化一个新数组,其中包含字符串文字的字符,包括终止空值。
该语言根本不允许赋值到数组。无论如何它都没有意义,因为一旦定义,数组就会识别一个内存位置。然后,您只能分配给数组元素或使用在引擎盖下执行该操作的函数(memxx,strxx)。