字符数组赋值

时间:2013-08-23 18:42:27

标签: c

int main()
{ 
     char s[]="stack";
     s="overflow";
}

这是不允许的。它给出了一个错误。但是下面的代码工作正常。

int main()
{
      char s[]="stack";
      strcpy(s,"overflow");
}

为什么会这样?

1 个答案:

答案 0 :(得分:-1)

变量s表示指向字符串的指针。更具体地说,它指的是字符串"stack"中第一个字母的内存地址。由于这个原因,操作s="overflow"毫无意义。如何将s(指针)的值设置为字符串?

请记住,C是一种非常低级的语言,因此您必须警惕那些看起来不直观的事情,而不是按照您期望的方式行事。