s1=s2
有效声明吗?它给了我错误:
需要左值
我的代码:
#include<stdio.h>
#include<conio.h>
void main()
{
char s[1]="integ";
char s[2]="systems";
s1=s2;
printf("%s", s1);
getch();
}
答案 0 :(得分:5)
您尚未定义名为s2
的变量。您有两个变量s1
和s
。此外,您不能分配像这样的字符数组。如果你需要在初始化之后更改变量指向的数组,则将它们声明为指针,或者使用strcpy()
将一个字符串的内容复制到另一个字符串中(当然要注意溢出)。最后,您将s
声明为大小为2,然后使用长度为7个字符的字符串初始化它。尝试:
char *s1 = "integ";
char *s2 = "systems";
s1 = s2;
printf(%s", s1);