C语言 字符串常量 指针

2020-02-04 09:08发布

最近在看C,写了以下测试程序
char *p="string";
void main()
{
*(p+3) = '';
while(1);
}
一开始我认为编译是无法通过的,因为这里试图去修改一个字符串常量中的值。
在VC6.0中编译通过file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/765350744/QQ/WinTemp/RichOle/%NRQKQQ4@WHT2W6TD2`NV3C.jpg
但是无法运行
file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/765350744/QQ/WinTemp/RichOle/Z@T{BXVAZ{NV94]ED824EUB.jpg
在TC2.0中编译通过
[img]file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/765350744/QQ/WinTemp/RichOle/[{[FM`Q%K((}GH`N}(}I95X.jpg[/img]

并且可以正常运行
[img]file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Tencent/Users/765350744/QQ/WinTemp/RichOle/@10_TL_X76O9A6M6CCVR$[P.jpg[/img]
不明白为什么会是这样的结果,请高手指点,谢谢!







友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。