可能重复:
Is it possible to modify a string of char in C?
What is the difference between char s[] and char *s in C?
我不了解C中的字符串和指针。
假设我有这个声明:
char str[] = "abc";
然后,如果我尝试以这种方式修改它:
str[0] = 'b';
它会起作用。
但是如果我将字符串声明为指向char的指针
char* str = "abc"
上述尝试将导致访问冲突。
我想要了解的是究竟是什么区别。
提前致谢
答案 0 :(得分:0)
在后面的示例中,编译器将字符串放在只读数据部分中,因此您无法修改它。但是在前面的示例中,您声明了一个驻留在堆栈中的字符数组,因此您可以修改此数组的内容。