CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

知道结果吗?

楼主fertiland(持经达变)2003-05-02 18:16:21 在 C/C++ / C语言 提问

#include<iostream.h>  
   
  void main()  
  {  
  char *str1="hello";  
  char *str2="hello";  
   
  *str1='p';  
   
  cout<<str2<<endl;  
   
  }  
  //以上程序在win32   Debug下,就会出现错误,内存不能写  
  //在win32Release下,就会出现正确的结果  
  //请问这两种编译条件下有何区别??怎么用? 问题点数:20、回复次数:5Top

1 楼zPerry(旧日重来)回复于 2003-05-02 18:34:37 得分 10

字符串放在只读内存区,你修改了自然会出错。  
  关于两种编译条件下有何区别,可详见http://expert.csdn.net/Expert/topic/1520/1520262.xml?temp=.101391Top

2 楼Maxwell(不可知)回复于 2003-05-03 00:06:46 得分 3

在debug   环境下会有更严格的检查,像你的操作,"hello"   是const   类型的,是不应该修改它的,但是在release   版中,这种检查就没有了。Top

3 楼021850524(吸血鬼牌卫生巾)回复于 2003-05-03 04:11:06 得分 3

这应该是野指针吧.  
  你要是开了编译器优化的话,就应该是pello  
  要是没开编译器优化,就应该是hello.  
  编译器优化的结果是把两个hello存成一个了.Top

4 楼021850524(吸血鬼牌卫生巾)回复于 2003-05-03 04:14:46 得分 2

标准的写法是const   char   *str1="hello";  
  const   char   *str2="hello";Top

5 楼justaseeker(MS)回复于 2003-05-03 08:20:06 得分 2

字符串是常量,放在只读内存区,不能进行写Top

相关问题

  • 如何知道CGI执行的结果
  • 整理后的结果(不知道有没有错漏)
  • 昨天有事。没看。刚知道结果。哈哈哈。我赔111222
  • 谁知道昨天中国功夫对泰拳的结果?
  • 想知道,如果webservice的返回结果是一张图片..
  • 有趣的循环--你知道运行结果吗?
  • 小测试:有谁知道这段程序的执行结果?
  • 怎样知道另一个程序的运行结果?急!!!
  • 如何知道ASP3中取回的结果集的总行数
  • 如何知道Query查询结果为空?

关键词

  • str1
  • hello
  • char

得分解答快速导航

  • 帖主:fertiland
  • zPerry
  • Maxwell
  • 021850524
  • 021850524
  • justaseeker

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo