Nach meinem Verständnis sollten constModifikatoren von rechts nach links gelesen werden. Daraus ergibt sich:
const char*
ist ein Zeiger, dessen char-Elemente nicht geändert werden können, der Zeiger selbst jedoch und
char const*
ist ein konstanter Zeiger auf mutableZeichen.
Aber ich bekomme die folgenden Fehler für den folgenden Code:
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
Also ... welches ist es? Ist mein Verständnis oder mein Compiler (VS 2005) falsch?