следующий код может быть правильно скомпилирован как на VC, так и на gcc:
char *str = "I am a const!";
str[2] = 'n';
однако, очевидно, есть ошибка времени выполнения. Поскольку "Я констант!" является const char *, почему компилятор не выдает ошибку или даже предупреждение ??
Кроме того, если я определю char a [] = "Я const!"
, все элементы в a
могут быть изменены, почему на этот раз строковые литералы становятся неконстантными
?