| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 352 人关注过本帖
标题:两句话的困惑
取消只看楼主 加入收藏
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
结帖率:98.26%
收藏
已结贴  问题点数:20 回复次数:2 
两句话的困惑
我今天看书的时候遇到了这样一个问题,char *s="hlooz";中的“hlooz”编译时候指针指向的区域位于PE文件的.rdata节中,是只读的,比如:
main()
{
char*s="sads";
char a[]="sasa";
*(a+2)='x';(是正确的)
*(s+2)='x';(编译通过,但运行时出错)
}

但是我在其他的书中看过的却有这样的解说:char *PS=“dsadsa”;*(ps+2)='m';说的是可以用如下的语句来修改字符串。
这样我就有点糊涂了,这到底是怎么回事?

希望高手帮忙解决一下!


谢谢了呀!
搜索更多相关主题的帖子: 困惑 
2009-10-22 22:02
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:0 
回复 3楼 pgy
我是在vc6.0上运行的,但是是错误,不知道为什么!

愿用余生致力编程
2009-10-23 15:35
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:0 
回复 2楼 m456m654
char *PS=“dsadsa”;*(PS+2)='m';说的是可以用如下的语句来修改字符串。
这句话没说错。

我在vc6.0上运行的时候却为什么是错误的呢?

愿用余生致力编程
2009-10-23 15:36
快速回复:两句话的困惑
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025652 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved