私は変数(char *)からconst-nessを削除しようとしていますが、何らかの理由で値を変更しようとすると、const変数の元の値は変わりません。 str2の変化の変数からconst-nessを削除する
const char* str1 = "david";
char* str2 = const_cast<char *> (str1);
str2 = "tna";
は現在値が、STR1の元の値は同じまま、私はGoogleでそれを見てきたが、明確な答えを見つけることができませんでした。
const_castを使用して値を変更する場合、const変数の元の値も変更する必要がありますか?
これで、キャストを使用してconst char *変数の値を変更する方法はありますか? –
@DavidFaizキャストなしでポインタをうまく変更できます。あなたが持っている文字列リテラルを指すようにポインターを設定していれば、 'char'を変更することはできません。文字列リテラルは定数です。文字列リテラルを配列にコピーする方法については、最新の編集を参照してください。 –
ちょうどそれを見て、それを持っていた! すぐに返信いただきありがとうございます! 基本的にリテラル文字列を変更することはできませんが、const char変数を使用して異なる文字列を参照するだけです。 –