C中的字符串声明

时间:2011-02-01 15:14:34

标签: c

  

可能重复:
  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"

上述尝试将导致访问冲突。

我想要了解的是究竟是什么区别。

提前致谢

1 个答案:

答案 0 :(得分:0)

在后面的示例中,编译器将字符串放在只读数据部分中,因此您无法修改它。但是在前面的示例中,您声明了一个驻留在堆栈中的字符数组,因此您可以修改此数组的内容。