意外的C字符串定义行为

时间:2015-06-22 19:09:36

标签: c string pointers string-literals

据我所知,下面的代码不起作用。然而,不知何故,我的编译器就可以了。请有人解释一下。

int main()
{
    char *string;
    string = "Goo";
}

1 个答案:

答案 0 :(得分:3)

  

据我所知,以下代码不起作用

我担心,你的信息有误。

char *string;
string = "Goo";

完全有效。基本上就是这样,

  1. 定义char指针string
  2. 字符串文字 "Goo"的基地址放入string
  3. 然而,如果char是一个数组,而不是string指针,那么这是不可能的,因为数组不能分配(定义除外)时间虽然括号括号列表)。