Possible Duplicates:
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"
上述尝试将导致访问冲突。
我想要了解的是到底有什么区别。
提前致谢
最佳答案
在后面的示例中,编译器将字符串放入只读数据部分,因此您无法修改它。但在前面的示例中,您声明了驻留在堆栈中的字符数组,因此您可以修改该数组的内容。
关于c - C 中字符串的声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4864279/