一个非常简单的问题,我担心但是我已经被困了好几天了,Google没有给我任何东西,我甚至试过了......; o)
我在VS2010的Windows下使用纯C工作。
我有一个静态字符数组......
static char word[5];
我可以设置每个数组位置,但是......
word[0] = 'f'; word[1] = 'o'; word[2] = 'o';
但我似乎无法做到(在声明之后的任何时候)......
word = "foo";
非常感谢任何关于我出错的地方的帮助或指示。
提前全部谢谢。
答案 0 :(得分:4)
strncpy(word, "foo", _countof(foo));
如果未定义_countof
,请改用sizeof(foo) / sizeof(*foo)
。
答案 1 :(得分:2)
数组不是指针。指针不是数组。
在大多数情况下,数组会衰减为指向其第一个元素的指针。但该指针不可修改。
在
word = "foo";
数组word
衰减为指向其第一个元素的不可修改指针...并尝试通过为其指定字符串文字"foo"