我可以先声明一个数组并在以后给出它的值吗?

Tar*_*er5 0 c arrays initialization assignment-operator

我试过这样做但是出错了.为什么我不能这样做?

int main()
{
char sweet[5];
sweet = "kova";
printf("My favorite sweet is %s\n", sweet);

return 0;
}
Run Code Online (Sandbox Code Playgroud)

Har*_*ris 8

不,你不能.仅仅因为数组名称是不可修改的l值.在任何表达式中都不能用作左操作数.因此,您不能将其保留在=表达式的左侧.

但是,如果要将字符串复制kova到数组sweet[],可以strcpy()像这样使用.

strcpy(sweet,"kova");
Run Code Online (Sandbox Code Playgroud)


Rag*_*ddy 7

您应该使用strcpy进行复制.仅在定义数组时允许初始化

int main()
{
char sweet[5];
strcpy(sweet,"kova");
printf("My favorite sweet is %s\n", sweet);

return 0;
}
Run Code Online (Sandbox Code Playgroud)

或者你可以做到这一点

char sweet[] = "kova";
Run Code Online (Sandbox Code Playgroud)