Изменение строки типа char * const
я знаю этоconst char *
указатель на const char, в то время какchar *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
не допускается?