This question already has answers here:
Assigning strings to arrays of characters
                                
                                    (9个答案)
                                
                        
                                6年前关闭。
            
                    
int main()
{
     char s[]="stack";
     s="overflow";
}


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

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


为什么会这样?

最佳答案

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

请记住,C是一种非常底层的语言,因此您必须警惕那些看起来似乎很直观的事情,并且它们的行为方式与您期望的不一样。

关于c - 字符数组分配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18409736/

10-11 23:16
查看更多