请大虾指教 关于char *p=“abcd”的问题

shanzhongyufu 2006-03-28 12:48:07
#include"stdio.h"
char *q="123456789";
main(){
char *p="abcdefg";
printf("%s\t",p);
p[1]='a';
printf("%s\t",p);
printf("%s\t",q);
q[1]='1';
printf("%s\n",q);
}
好像记得说其中的p、q为字符常量指针,不能修改,但上面的程序运行是对的,
用的是tc2.0
...全文
308 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cihw2005 2006-03-28
  • 打赏
  • 举报
回复
但是语法上的确是个大错误。
尽量不要使用对标准支持不好的甚至自身存在缺陷的编译器。
expert2000 2006-03-28
  • 打赏
  • 举报
回复
好像在哪里看到过,除了TC,其他都不行
逸学堂 2006-03-28
  • 打赏
  • 举报
回复
tc问题。
用VC就会出错。
adintr 2006-03-28
  • 打赏
  • 举报
回复
DOS 下好像没有只读内存的概念
goodluckyxl 2006-03-28
  • 打赏
  • 举报
回复
tc是16位程序代码段不保护
到32位下就不行了
jinjiajie 2006-03-28
  • 打赏
  • 举报
回复
VC和GCC运行出错...其他的估计也有问题吧
chen_alvin 2006-03-28
  • 打赏
  • 举报
回复
gcc试验了,编译连接没错,运行出错了。
kevlin 2006-03-28
  • 打赏
  • 举报
回复
估计是tc2.0实现的不规范,应该是无法运行的,我再VC及GCC编译器下都试验过了,都会再p[1]='a';这一行报错的。
看来你需要换编译器了:)

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧