c++ - char字面差异?

标签 c++ types char

一直在学习一些 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/

相关文章:

c# - 我怎样才能允许一个类被声明为使用 float 或 double ?

c++ - Memcpy 字符指针

java - 如何创建自定义 Eclipse 警告?

c - 多次调用 char[] 立即返回函数 fprint

c - 如何比较符号为 '\' 的字符串

c++ - 初始化的最佳代码

c++ - 翻转 bool : performance comparison of x=! x 与 x^=1

c++ - 如何获取 `Label::createWithTTF`以支持阿拉伯语等RTL语言

c++ - 用于在C++中表示JSON的数据类型

c - 没有返回类型定义的 main() 函数给出警告