我知道当我们声明 char *c ="Hello";
时意味着我们无法修改该字符串。但为什么我能够在 C 中修改这个字符串数组。
char *p [] = {"Hello","World"};
*p = "Mode";
这不应该给我尝试修改它的错误吗?
最佳答案
您没有在任何地方修改字符串(文字)。
char *p [] = {"Hello","World"};
这里p
is an array (size 2) of pointer-to-char
。它是一个变量,没有什么只读的。然而,它当前指向的字符串是只读的。
*p = "Mode";
您只需更改该数组的第一个元素以指向不同的(只读)字符串。这与:
p[0] = "Mode";
关于c - 修改C中的字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36197105/