参加过一些STL c ++ 11课程并且对围绕char字面量的规范感到困惑。
鉴于以下char文字,我已经能够如下识别它们:
'a' // unsigned char
L'a' // wchar_t
"a" // ??? char ?
L"a" // ??? long wchar_t ?
这里是双引号。由于我的课程尚未涵盖字符串,因此这里的答案应该是char。
"a"
和L"a"
代表什么类型?
答案 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 *
。