我知道这const char *
是一个指向 const char 的指针,而是一个指向 charchar *const
的常量指针。我正在以下代码中对此进行测试:
const char *s = "hello"; // Not permitted to modify the string "hello"
char *const t = "world"; // Not permitted to modify the pointer t
s = "hello2"; // Valid
// t = "world2"; // Invalid, gives compilation error
// *(s + 1) = 'a'; // Invalid, gives compilation error
*(t + 1) = 'a'; // Why does this not work?
最后一行没有给出任何错误,但会导致程序意外终止。t
为什么不允许修改指向的字符串?