答えて
文字列リテラルではなく、配列です。それは完全に有効なコードです。
char *c="opop";
c[2]='k';
は未定義の動作と最も可能性の高いクラッシュを引き起こします。
グッド読む:
What is the difference between char a[] = "string"; and char *p = "string";
Turbo C++が古くて、文字列リテラル(char * = "opop"で定義)が下位互換性のために書き込み可能であったというコメントを追加したいと思います。 GCCにはまだこれを可能にする-wwriteable-strings(私が信じる)のフラグがあります。 –
@ std''OrgnlDave:私の古い答えの1つの答えのリンクは、これを標準の引用符で詳しく説明しています。 –
私は8年間C++を使用していません。この不変性は言語の「新しい」特徴ですか?また、私はいつもchar c []とchar * cは同義語だと考えましたか? – Eduardo
- 1. 文字列xに文字がある場合、なぜこの関数を実行しないのですか?
- 2. tryブロックで返された場合でも、finallyでコードが実行されるのはなぜですか?
- 3. c#不変の文字列が常に更新される
- 4. Turbo C++の文字列の問題
- 5. 文が実行されない場合
- 6. C#で変数の値が変更された場合、どのようにコードを実行できますか?
- 7. C++チュートリアルで文字列の配列が文字列に使用されているのはなぜですか?
- 8. Java文字列インデックスが範囲外です。-1次のコードの場合は、-1
- 9. Pythonで文字列が不変の場合、なぜPythonで上書き操作が許可されるのですか?
- 10. Javascriptコードが実行されないのはなぜですか?
- 11. なぜJavaScriptコードが実行されないのですか?
- 12. Javaコードが実行されないのはなぜですか?
- 13. forループ内の文がループで実行されない場合
- 14. 空文字列の変数が返される場合
- 15. sendToSocketが成功した場合にsetTimeout def.rejectコードが実行されないのはなぜですか?
- 16. XNA C#文字列が描画されないのはなぜですか?
- 17. Javascriptで同じ文字列ハッシュの実装が必要な場合C#
- 18. if文が実行されないのはなぜですか?
- 19. 次のCコードはなぜdevC++ではなくturbo cで動作しますか?
- 20. 関数からC文字列を返すと、ランダムな文字が返されるのはなぜですか?
- 21. Maya:最初の文字が大文字でない場合、Pythonスクリプトは実行されませんか?
- 22. Javaコード次のコードでのステートメントが正常に実行されていない場合は理由書
- 23. Solrなぜ更新のみが実行された場合に文書を削除するのですか?
- 24. JQuery:beforeSendのコードが実行される前にajaxリクエストが実行されるのはなぜですか?
- 25. エスケープ文字がPythonの\ x0のような文字列に変換されるのはなぜですか?
- 26. アナリティクスがトラッキングされていない場合は、AddThisボタンのコードにpubid文字列が必要ですか?
- 27. 次のコードの並列化が実行に時間がかかりすぎるのはなぜですか?
- 28. 文字列がURLである場合 - Objective-Cの
- 29. 次のjavascriptコードはなぜ実行されますか?
- 30. C#で不変クラスが封印されないのはなぜですか?
あなたが実際に、(あなたがされていない)の前提文字列リテラルを変更した場合でも、「なぜここ未定義の動作の作業を呼び出すありませんの?」欠陥があります。未定義の動作とは、*何かが起こる可能性があることを意味します( "働く"の定義を含む)。 – jamesdlin
私は、タイトルが 'std :: string'が不変であると言っていたと思っていました。もちろん、そうではありません。 –