1. 一个常见的考点:
char* p = "test";
那么理利用指针p来改变字符串test的内容都是错误的非法的。
例如:
p[0] = 's';
strcpy(p, "haoel"); 这都是错误的操作。
原因就在于,char* p = "test"; 这个声明,声明了一个指针,而这个指针指向的是全局的const内存区,
const内存区当然不会让你想改就改的。所以,如果你一定要写这块内存的话,那就是一个非常严重的内存错误
2. 全局const内存区
char* p1 = "anything";
char* p2 = "anything";
printf(“ p1=%x, p2=%x /n”, p1, p2);
可以发现这两个内存地址是相同的,因为p1和p2都是指向的全局的const内存区的同一段内存中。
3. 在C++中声明字符串指针时
因为字符串是以常量的形式存在,所以可以 const char *p = "test";这样当你试图修改
字符串的内容时,就会报错。
4. 隐晦的字符串的const转换。
char *p = "test";
w_char *pw = L"test";
把一个const的字符串类型转成non-const的。包括指针和数组