我對字符串文字的數據類型感到困惑。是const char *
還是const char
?深表讚賞。由於C++什麼是字符串文字的數據類型?
18
A
回答
25
這是一個const char[N]
(這是一回事爲char const[N]
),其中N
是字符串的長度加上一個用於終止NUL
(或只是如果你定義「長度的字符串的長度字符串「已包括NUL
)。
這就是爲什麼你可以做sizeof("hello") - 1
來獲得字符串中的字符數(包括任何嵌入的NUL
s);如果它是一個指針,它將不起作用,因爲它總是系統指針的大小(減一)。
7
"Hello world"
是const char[12]
(十一個字符加上'\0'
終止符)。
L"Hello world"
是const wchar_t[12]
。
而且由於C++ 14,"Hello world"s
是std::string
。
還要注意由C++ 11加入u8""
,u""
和U""
字符串文字符號,其分別指定UTF-8,UTF-16和UTF-32的編碼。非限定字符串文字(即""
和L""
)的編碼是(並且總是)實現定義的。
相關問題
- 1. C++中的字符串文字的類型是什麼?
- 2. 什麼是#define字符串的類型?
- 3. 字符串的數據類型是什麼?
- 4. 什麼是「雙」字符串類型?
- 5. c中的字符串數據類型
- 6. C++字符串文字的類型
- 7. 什麼是C#字符串
- 8. C#字符串到var數據類型
- 9. 什麼是相應的C++數據類型爲SQL數字(18,0)數據類型?
- 10. Microsoft使用什麼作爲Unicode字符串的數據類型?
- 11. 測試泛型類型是字符串的最佳方法是什麼? (C#)
- 12. 在C#中的區別是什麼:字符串VS字符串
- 13. C#的@字符串文字在Java中對應的是什麼?
- 14. 二進制值的數據類型是什麼?它是字符串數據類型嗎?
- 15. C#中字符串前的@是什麼?
- 16. SharePoint - 什麼類型是數字字段
- 17. 字符串到數據類型類
- 18. 字符串文字的值類別是什麼?
- 19. 接受C++字符串&C風格的字符串泛型類
- 20. java中的字符串數據類型
- 21. 什麼是Grails中字符串的默認數據庫映射類型?
- 22. XSD中連接字符串的數據類型應該是什麼?
- 23. 從字符串中獲取數據字符串整型數據類型
- 24. WINOLEAPI的C#數據類型是什麼?
- 25. C# - 什麼是從字符串
- 26. ObjC方法類型編碼字符串中的數字是什麼?
- 27. 如何檢查字符串是否代表什麼類型的數字?
- 28. 數組C++字符串類型
- 29. 這個文字的類型是什麼?
- 30. 什麼是Java中的文字類型?
看到我的回答http://stackoverflow.com/questions/12451496/what-is-the-data-type-for-a-string/12452097#12452097到類似的問題。 – PiotrNycz
根據有這個錯誤的人的數量來判斷(思考它的const char *)我不明白爲什麼這是被低估了。顯然,當一半的受訪者不知道答案時,這是一個很好的問題。 – WhozCraig
@CraigNelson,我已經看到很多人有10s的代表在過去的一段時間裏錯了。 – chris