C语言中将字符串赋值给字符数组的问题

问不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组赋值。“
那么str1=“China”是不是错的?
char a[ ]=‘toyou’; 为什么是正确的呢?

举例如下:
char s[20];s=“helo”;这样是错误的,原因就是不能用赋值语句将一个字符串常量直接给一个字符数组赋值。

char s[20];
char ss[]=“hello”;
s=ss;这也是错误的,原因是不能用赋值语句将一个字符数组直接给一个字符数组赋值

即字符串的复制(c语言中,但是在c++的string 类,上面的赋值是正确的)必须用strcpy()函数实现。

而char a[ ]=”toyou“;为上面是正确呢???那是因为我们在声明数组变量的时候就是,为其开辟空间,并为其初始化,这样才是符合c语言语法的。而上面的都是不符合语法的。

你可能感兴趣的:(C语言中将字符串赋值给字符数组的问题)