首页 > 代码库 > C语言char s[] 和 char *s的区别

C语言char s[] 和 char *s的区别

C语言char s[] 和 char *s的区别,下面这个回答讲解的很清晰。

The difference here is that

char *s = "Hello world";

will place Hello world in the read-only parts of the memory and making s a pointer to that, making any writing operation on this memory illegal. While doing:

char s[] = "Hello world";

puts the literal string in read-only memory and copies the string to newly allocated memory on the stack. Thus making

s[0] = ‘J‘;
legal.

来自  http://stackoverflow.com/questions/1704407/what-is-the-difference-between-char-s-and-char-s-in-c