int x;x=1;
与 int x=1;
但是
char str[20];
str="my name is bla bla";
不起作用,而 char str[20]="my name is bla bla";
有效
使用TDM-GCC-64编译器处理代码块
答案 0 :(得分:4)
在C语言中,字符串只是字符数组。可以说核心语言本身甚至不知道字符串的存在 - 它是一个库级概念。 (除了字符串文字之外,也许是核心语言特性,它们是字符串。)。在所有方面,字符串都只是数组。
在C语言中,裸数组通常不可复制,既不在赋值上下文中也不在初始化上下文中。相反,除了一些特殊的上下文之外,C中的数组会立即衰减为指针:
&
运营商sizeof
运营商_Alignof
运营商char[]
数组(在这种情况下实际进行数组复制)初始化的示例属于上面的列表,这就是它的工作原理。但是使用赋值的示例不是例外。在后一种情况下,应用了数组的一般规则:您无法在C中分配数组。在要复制裸数组时,必须使用用户级或库级代码。