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