为了保护常量,特将常量都放在受保护的静态存储区内。凡是试图修改这个区域内的值,都将被视为非法,并报错。
如下面2行代码
char *p1 = "world";
char *p2 = "world";
编译器为了节省空间,常量区中只有一份"world",所以p1、p2指向同一份的字符串
如果允许改变,这会造成无意中改变其他指针指向的字符串,操作系统中的copy-on-write,机制就是为了解决这个问题,可惜C语言中没有改机制,Delphi中也有
等同于 const char *p = "abc",这里有2层意思
1、这里的const是修改char *类型,即修饰字符串指针p指向的内容,也就是禁止更改指针指向的内容,但指针