int main()
{
char s[]="stack";
s="overflow";
}
这是不允许的。它给出了一个错误。但是下面的代码工作正常。
int main()
{
char s[]="stack";
strcpy(s,"overflow");
}
为什么会这样?
答案 0 :(得分:-1)
变量s
表示指向字符串的指针。更具体地说,它指的是字符串"stack"
中第一个字母的内存地址。由于这个原因,操作s="overflow"
毫无意义。如何将s(指针)的值设置为字符串?
请记住,C是一种非常低级的语言,因此您必须警惕那些看起来不直观的事情,而不是按照您期望的方式行事。