char *s = "Hello world"
1."Hello world"在内存中是只读的
2.将s指针指向"Hello world"位置
3.任何通过s进行写操作,都会导致内存错误
如s[0]='D'均会出现错误
而char s[] = "Hello world"
1."Hello world"在内存中是只读的
2.将"Hello world"拷贝到栈中新的内存里,即字符数组s[]
3.因此对于s[0]是可以正确执行
该问题的解答:http://stackoverflow.com/questions/1704407/what-is-the-difference-between-char-s-and-char-s-in-c