Наскільки я розумію, const
модифікатори слід читати справа наліво. З цього я отримую таке:
const char*
є покажчиком, елементи символу якого неможливо змінити, але сам вказівник може, і
char const*
є постійним вказівником на mutable
символи.
Але я отримую такі помилки для наступного коду:
const char* x = new char[20];
x = new char[30]; //this works, as expected
x[0] = 'a'; //gives an error as expected
char const* y = new char[20];
y = new char[20]; //this works, although the pointer should be const (right?)
y[0] = 'a'; //this doesn't although I expect it to work
Отже ... який це? Моє розуміння чи мій компілятор (VS 2005) помиляються?