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