Ich versuche Const-Ness aus einer Variablen (Char *) zu entfernen, aber aus irgendeinem Grund, wenn ich versuche, den Wert zu ändern, bleibt der ursprüngliche Wert der Const-Variable immer noch gleich .Entfernen Const-Ness aus einer Variablen
const char* str1 = "david";
char* str2 = const_cast<char *> (str1);
str2 = "tna";
nun der Wert von str2 ändert aber den ursprünglichen Wert von str1 bleibt gleich, ich sehe es habe auf Google, aber konnte keine klare Antwort finden.
Wenn Sie const_cast verwenden und den Wert ändern, sollte sich auch das Original der const-Variablen ändern?
Okay, gibt es eine Möglichkeit, den Wert der Variablen const char * im Casting zu ändern? –
@DavidFaiz Sie können den Zeiger ohne die Besetzung einfach ändern. Sie * können das Zeichen nicht ändern, wenn Sie den Zeiger auf ein Zeichenfolgenliteral gesetzt haben, das Sie haben. String-Literale sind konstant. Siehe meine letzte Änderung für das Kopieren eines Zeichenfolgenliterals in ein Array. –
Yea habe es gesehen und verstanden! vielen dank für die schnelle antwort! so im Grunde kann ich nicht die literale Zeichenfolge ändern, sondern nur die const char-Variable und zeigen auf eine andere. –