c语言指针问题

deleteooooo 2011-12-03 03:46:34
书中说“the result is undefined if you try to modify the string contents”,例如char *pt = "goodluck";然后pt[3]='m';有修改成功的可能吗,为什么?
...全文
113 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
吾日三省- 2011-12-03
  • 打赏
  • 举报
回复
字符串真是一个不小的细节问题!
modicum_ck 2011-12-03
  • 打赏
  • 举报
回复
char *pt = "goodluck";然后pt[3]='m';有修改成功的可能吗,为什么?

要是想改,也可以改,在程序前面加上 #pragma comment(linker,"/SECTION:.rdata,RW")

但是不建议这样做。
AnYidan 2011-12-03
  • 打赏
  • 举报
回复
未定义的行为表示其结果无法预测,有无限的可能
wang7535067 2011-12-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 pqpqr 的回复:]
当然不能改变。。。字符串"goodluck"存储在常量区,不能对它写的。
[/Quote]
同意
  • 打赏
  • 举报
回复
当然不能改变。。。字符串"goodluck"存储在常量区,不能对它写的。
wizard_tiger 2011-12-03
  • 打赏
  • 举报
回复
这个是常量,应该是不可被改变的。
C_ROOKIES 2011-12-03
  • 打赏
  • 举报
回复
存放的字符串是一个常量,常量是不能被改变的。所以操作是错的。字符串常量放在内存的静态存储区。不允许被改变的!
suixinpiaodang 2011-12-03
  • 打赏
  • 举报
回复
这段话的前边是什么?
liustone1263027102 2011-12-03
  • 打赏
  • 举报
回复
char *pt ;
pt= "goodluck";
li08240418 2011-12-03
  • 打赏
  • 举报
回复

const


恩 你“违规”啦 嘿嘿
iamnobody 2011-12-03
  • 打赏
  • 举报
回复
你先看看这句话的前提条件是什么啊?怎么可以章取义呢?

第一个是undefined.第二个是可以修改的。
IVERS0N 2011-12-03
  • 打赏
  • 举报
回复
你可以当作这样 你就明白了

const char *pt = "goodluck";



69,371

社区成员

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

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