一直在学习一些 STL c++11 类(class)并且对 char 文字的规范很感兴趣。
鉴于以下字 rune 字,我已经能够如下识别它们:
'a' // unsigned char
L'a' // wchar_t
"a" // ??? char ?
L"a" // ??? long wchar_t ?
双引号是上行,这里。由于我的类(class)尚未涵盖字符串,因此此处预期的答案是一种 char 形式。
"a"
和 L"a"
代表什么类型?
最佳答案
你的类(class)可能还没有涉及字符串,但是带双引号的值是字符串文字(第一个窄,第二个宽);它们的类型分别是const char[2]
和const wchar_t[2]
。
顺便说一句,许多人经常说它们是 const char *
和 const wchar_t *
,但这是不正确的 - 因为所有数组都容易衰减到指向它们第一个的指针元素,但它们确实是数组,因为您可以使用例如检查sizeof
.
关于c++ - char字面差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52825885/