1

可能重复:
是否可以在 C 中修改 char 字符串?

char *s = "anusha";

这像一个常量指针吗?当我尝试通过写入来更改位置 3 中的字符时s[3]='k',它给了我一个分段错误。所以我假设它就像指向一个常量数组或者 s 是一个常量指针?两者中的哪一个?请说清楚。

4

2 回答 2

4

没错,您不允许修改字符串文字。

但是,这样做是合法的:

char s[] = "anusha";
s[3] = 'k'

这里的区别在于它存储为可以修改的本地数组。

于 2012-02-04T02:39:31.947 回答
0

看起来您的编译器将"anusha"其视为指向 的指针char,但将字符串本身放入受写保护的内存中。我记得读过这是为了遵守现有代码的便利政策。

正如乔所指出的,这在是否可以在 C 中修改字符串?.

于 2012-02-04T02:44:56.493 回答