字符的字面差异?

时间:2018-10-15 23:10:00

标签: c++ types char

参加过一些STL c ++ 11课程并且对围绕char字面量的规范感到困惑。

鉴于以下char文字,我已经能够如下识别它们:

'a'   // unsigned char
L'a'  // wchar_t
"a"   // ??? char ?
L"a"  // ??? long wchar_t ?

这里是双引号。由于我的课程尚未涵盖字符串,因此这里的答案应该是char。

"a"L"a"代表什么类型?

1 个答案:

答案 0 :(得分:3)

您的课程可能尚未涵盖字符串,但是带双引号的值是字符串文字(第一个窄的第二个宽);它们的类型分别为<img src="https://dummyimage.com/400x200/000/cfd0d6&text=CelebBack" data-back="https://dummyimage.com/400x200/000/cfd0d6&text=CelebBack" data-front="https://dummyimage.com/400x200/000/cfd0d6&text=CelebFront" id="CelebBack" onclick=diffImageTech(this) /> <img src="https://dummyimage.com/400x200/000/cfd0d6&text=TechBack" data-back="https://dummyimage.com/400x200/000/cfd0d6&text=TechBack" data-front="https://dummyimage.com/400x200/000/cfd0d6&text=TechFront" id="TechBack" onclick=diffImageTech(this) />const char[2]

偶然地,很多人经常说他们分别是const wchar_t[2]const char *,但这是不正确的-因为所有数组都容易衰减到指向第一个元素的指针,但是正如您一样,它们确实是数组可以使用例如const wchar_t *