可能重复:
Why does char* cause undefined behaviour while char[] doesn’t?
请查看下面的代码
int main (int argc, char* argv[])
{
char* s = "Hello world!";
s[0] = 'X';
return 0;
}
此代码中的seg错误来自何处?
更新 相反,下面的代码没有给出seg错误,为什么?
int main (int argc, char* argv[])
{
char s[] = "Hello world!";
s[0] = 'X';
return 0;
}
答案 0 :(得分:3)
"Hello world!"
是一个静态字符串,您无法更改它。