Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2341236
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:07:45

因为我们写的大多数程序都在可读写的内存里面操作的,所以那个指针里面的内容是可以修改的,
如果要声明一个常量,最好用 const 修饰一下
char *cp="howdy"; 当中的 "howdy" 在运行的时候也是在内存里面的,用 (*cp)++ 是可以把那个在内存里面的字符串内容修改了的
Borland 的做法是既然程序执行时储存那个字符串的内存是可以读写的,你没加 const 修饰,就可以修改指针的内容了,并且是安全的修改这个字符串的内容,没有错误发生。如果执行时那个字符串是储存在只读存储器里面的,会忽略这个语句的执行,不修改里面的内容。
如果在 Visual C++ 里面写了这样的程序也可以编译通过,当然也不是当作常量处理的,但是会在程序运行的时候引起非法操作,程序执行异常终止或者蓝屏等莫名其妙的现象。

--------------------next---------------------

阅读(1099) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~