Abd*_*iri -4 c pointers c-strings
我知道当我们宣布一种char *c ="Hello";手段,我们不能修改这个字符串.但是为什么我能够在C中修改这个字符串数组.
char *p [] = {"Hello","World"};
*p = "Mode";
Run Code Online (Sandbox Code Playgroud)
试图修改它不应该给我一个错误吗?
你不是在任何地方修改字符串(文字).
char *p [] = {"Hello","World"};
Run Code Online (Sandbox Code Playgroud)
这p是指针指向的数组(大小为2)char.这是一个变量,没有任何关于它的只读.它当前指向的字符串是只读的.
*p = "Mode";
Run Code Online (Sandbox Code Playgroud)
您只是将该数组的第一个元素更改为指向另一个(只读)字符串.这与:
p[0] = "Mode";
Run Code Online (Sandbox Code Playgroud)