#include<stdio.h>
int main()
{
int i = 0;
char s[] = "Hello World!";
char *ps = s,*p = "Hello World!";
/*for(i = 0;*(ps+i) != '\0';i++)
{
*(ps+i) = 'c'; //这里没有问题
}
printf("%s\n",ps);*/
for(i = 0;*(p+i) != '\0';i++)
{
*(p+i) = 'c'; //这里会出错!!!why???
}
printf("%s\n",p);
return 0;
}
如上程序,编译没有问题,运行出现异常,为什么呢?
你这是在改Hello World!这个字符串啊,但是字符串是常量,不能修改啊
我明白了,谢谢!