Moin.
Eigentlich ist das strenggenommen falsch und hier liegt der Hund begraben. Denn "Test" ist ein String-Literal und hat eigentlich den Typ const char *, d.h. der Inhalt darf nicht modifiziert werden (const).
Prinzipiell korrekt, im Detail jedoch nicht ganz richtig: String-Literale haben Array-Typ ("hello"
ist beispielsweise vom Typ char [6]
- wären sie Zeiger, würde z.B. sizeof
für jedes Literal identische Werte liefern.
Dass ein String-Literal nicht modifiziert werden darf, liegt nicht an seinem Typ (laut Standard ist es aus vermutlich historischen Gründen nicht const
), sondern an folgendem Absatz:
It is unspecified whether these arrays are distinct provided their elements have the appropriate values. If the program attempts to modify such an array, the behavior is undefined.
Christoph