Насколько я понимаю, модификаторы const
должны быть читать справа налево. Из этого я понял, что:
const char*
- это указатель, элементы char которого нельзя изменить, но сам указатель может, а
char const*
- постоянный указатель на изменяемые
символы.
Но я получаю следующие ошибки для следующего кода:
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)?