主题:[讨论]关于C指针
lshua
[专家分:0] 发布于 2012-05-11 08:39:00
有如下语句
char *p="helloworld";
p[2]='L';
printf("%s\n",p);
编译时为什么会出错,应该怎么修改啊。。各位大侠求赐教!!!!
回复列表 (共6个回复)
沙发
phpwhynot [专家分:20] 发布于 2012-05-11 09:12:00
char a[]="helloworld",*p;
p=a;
a[2]='L';
printf("%s\n",p);
p是指针变量,又不是数组。。
板凳
fragileeye [专家分:1990] 发布于 2012-05-11 17:20:00
问题不是ls所说,char *p = "***";这段内存是只读的,不能修改。。
3 楼
海盗许毅 [专家分:120] 发布于 2012-05-12 15:19:00
同意ls的,用char *p="do jdk jdlk";声明的是字符串常量,相当于const char *p="do jdk jdlk";因为常量只能引用,但是不能修改。
4 楼
lshua [专家分:0] 发布于 2012-05-13 12:09:00
知道。谢了啊
5 楼
lshua [专家分:0] 发布于 2012-05-13 12:10:00
嗯。。懂了。。谢了啊
6 楼
庸者的救赎 [专家分:0] 发布于 2012-05-16 13:47:00
学习了!
我来回复