文字列リテラルのデータ型について混乱しています。それはconst char *
またはconst char
ですか?洞察は高く評価されます。おかげC++文字列リテラルのデータ型は何ですか?
18
A
答えて
25
は、それはあなたがの」長さを定義した場合N
は、文字列の長さプラス終了NUL
(または文字列の長さだけのためのものですconst char[N]
(char const[N]
として同じものである)であり、文字列 "にはすでにNUL
が含まれています)。
これは、sizeof("hello") - 1
を実行して文字列の文字数を取得できる理由です(埋め込み文字を含む)NUL
を含む)。それがポインタだった場合は、システム上のポインタのサイズ(常に1を引いた値)になるため、動作しません。
7
"Hello world"
は、const char[12]
(11文字+ '\0'
ターミネーター)である。
L"Hello world"
は、const wchar_t[12]
です。
そしてC++ 14以降、"Hello world"s
はstd::string
です。
は、それぞれ、UTF-8、UTF-16およびUTF-32エンコードを指定するC++ 11によって加えu8""
、u""
とU""
文字列リテラル表記を、注意してください。修飾されていない文字列リテラル(つまり、""
とL""
)のエンコードは、実装定義されています。
関連する問題
- 1. C++の文字列リテラルのタイプは何ですか?
- 2. 型付きリテラルの文字列
- 3. web.configの文字列リテラルの&のエスケープシーケンスは何ですか?
- 4. C#の@文字列リテラルのJavaの対応部分は何ですか?
- 5. データ型文字列とC#の文字列との比較
- 6. 文字列リテラルの値カテゴリとは何ですか?
- 7. 文字列とリテラルの違いは何ですか?
- 8. DEBUGLOGフォーマット文字列は、文字列リテラル
- 9. 文字列リテラル
- 10. C++の文字列リテラルのタイプ
- 11. Haskell/GHC:多型文字リテラル
- 12. 1文字の文字列リテラルは、シンプルなchar型リテラルに最適化されていますか?
- 13. ObjCメソッドの型文字列の数字は何ですか?
- 14. C#文字列参照型ですか?
- 15. バイト文字列リテラル
- 16. Unicode文字列リテラル
- 17. リテラル文字列から型を除外する
- 18. C/C++では、文字列リテラルにファイルを#includeできますか?
- 19. 文字列リテラルの連結
- 20. "r"の文字列リテラルに先行するものは何ですか?
- 21. C#で文字列データ表現を型に変換する
- 22. C/C++の文字列リテラルに非ASCII文字を挿入する方法
- 23. C#シリアライズでデータ型datetimeをシリアル化せず、文字列のみ
- 24. C#で。文字列と文字列の違いは何ですか?
- 25. Pythonは文字列リテラルを文字列に変換します
- 26. Python AJAXレスポンス文字列リテラル
- 27. Resharperスプリット文字列リテラル
- 28. 終端文字列リテラル
- 29. スレッドと文字列リテラル
- 30. char型のデータ型を使用したC++での文字列の解析
私の回答を参照してくださいhttp://stackoverflow.com/questions/12451496/what-is-the-data-type-for-a-string/12452097#12452097同様の質問。 – PiotrNycz
これが間違っている人の数で判断すると(const char *と考える)、なぜこれが落選しているのか分からない。回答者の半分が答えを知らないときには、明らかに良い気持ちです。 – WhozCraig
@CraigNelson、私は10代の担当者があまりにも多くの人々が最後の間にそれを間違って取得する方法を見てきました。 – chris