C - 使用“字符串”设置静态字符数组

时间:2011-04-30 19:13:26

标签: c arrays string char

一个非常简单的问题,我担心但是我已经被困了好几天了,Google没有给我任何东西,我甚至试过了......; o)

我在VS2010的Windows下使用纯C工作。

我有一个静态字符数组......

static char word[5];

我可以设置每个数组位置,但是......

word[0] = 'f'; word[1] = 'o'; word[2] = 'o';

但我似乎无法做到(在声明之后的任何时候)......

word = "foo";

非常感谢任何关于我出错的地方的帮助或指示。

提前全部谢谢。

2 个答案:

答案 0 :(得分:4)

strncpy(word, "foo", _countof(foo));

如果未定义_countof,请改用sizeof(foo) / sizeof(*foo)

答案 1 :(得分:2)

数组不是指针。指针不是数组。

在大多数情况下,数组会衰减为指向其第一个元素的指针。但该指针不可修改。

word = "foo";

数组word衰减为指向其第一个元素的不可修改指针...并尝试通过为其指定字符串文字"foo"

的地址来修改该指针