很多刚从c转c++的人都不明白,在c中这样的代码
char *pchar="hello!"; //定义字符指针pchar,指向一个字符数组首元素即h
*pchar='h'; //问题所在行
到了c++中怎么就不行了?你翻遍参考书,都会说,pchar指向的是常量,怎么能允许改变呢?你又问了,怎么我在c中运行的好好的?没人回答你。于是,你只好自我安慰,这就是c++的保护机制吧。
我来做个总结吧,发现这个问题如果不深入研究一下,总是人云亦云,就像我以前那样。于是,我用bc++3.1编译这段代码后运行,无论是编dos程序还是windows程序都是能运行的,结果也和你预期的一样。没什么问题。但是vc++6运行时就会出错,错误你想必相当熟悉(xx内存不能写)。但这只是编译器的问题的吗?