我的这段代码是倾销核心:
int main(int argc,char *argv[])
{
char *p = "onnm";
printf("%c\n",++*(p++));
return 0;
}
printf行可能是什么原因?
答案 0 :(得分:3)
字符串文字是只读的,你不能改变它们。
使用例如char p[] = "onnm";
答案 1 :(得分:1)
由于C语言的“语言标准不一致”,您可以像这样编码。 如,
const char const_buff[] = { 'o','n', 'n', 'm', '\0' }; // OK
char* pArray = const_buff; // not OK
在同一行中它应该不允许你编译,
char *p = "onnm";
但是你可以编译,所以允许你改变只读字符串的错误。
++ * ( p++)