字符串 下部的代码为什么跑不通
字符串 下边的代码为什么跑不通?
int main()
{
char *c="123456789";
c[8]='0';
printf("%c\n",c[8]);
return 0;
}
------解决方案--------------------
------解决方案--------------------
char *c="123456789";
这句话可以理解分两步走,第一步是建立内容为“123456789”的常量字符串,第二部是将该字符串的首地址赋给c。如果你想改常量的内容,肯定是要报错的。
char c[20]="123456";
这个是给数组c的前7个位置幅值,修改时候就不会报错了。
int main()
{
char *c="123456789";
c[8]='0';
printf("%c\n",c[8]);
return 0;
}
------解决方案--------------------
char *c="123456789";
//静态区存放在,这片数据只是可读的!不能更改的!
------解决方案--------------------
char *c="123456789";
这句话可以理解分两步走,第一步是建立内容为“123456789”的常量字符串,第二部是将该字符串的首地址赋给c。如果你想改常量的内容,肯定是要报错的。
char c[20]="123456";
这个是给数组c的前7个位置幅值,修改时候就不会报错了。