请看以下代码:
#include
main ()
{
char *s = "ABC";
printf("s = %s\n", s);
s[0] = 'B';
printf("s1 = %s\n",s);
return 0;
}
编译并运行:如下结果
上面的结果是什么原因呢?请把上述代码修改为下面的代码。
#include
main ()
{
const char *s = "ABC";
printf("s = %s\n", s);
s[0] = 'B';
printf("s1 = %s\n",s);
return 0;
}
![](https://img-my.csdn.net/uploads/201207/17/1342510886_7252.jpg)
从上面的描述以及结果可以看出,字符常量在定义的时候一定要加const修饰,
第一种情况是没有加const,编译没有问题,但是在运行的时候就有问题了。
第二种情况是加了const,结果是子啊编译的时候就有问题了。