我很好奇为什么在C中不允许这样做:
char myarray[4];
myarray = "abc";
Run Code Online (Sandbox Code Playgroud)
这是允许的:
char myarray[4] = "abc";
Run Code Online (Sandbox Code Playgroud)
我知道在第一种情况下我应该使用strcpy:
char myarray[4];
strcpy(myarray, "abc");
Run Code Online (Sandbox Code Playgroud)
但是为什么不允许声明和后来的初始化,允许声明和同步初始化?它与C程序的内存映射有关吗?
谢谢!
在更高级别的语言中,我将能够在C中使用类似于此示例的内容,并且它会很好.但是,当我编译这个C例子时,它会痛苦地抱怨.如何将新数组分配给我声明的数组?
int values[3];
if(1)
values = {1,2,3};
printf("%i", values[0]);
Run Code Online (Sandbox Code Playgroud)
谢谢.