当在多个字符上使用时,单引号在C+中会做什么?

当在多个字符上使用时,单引号在C+中会做什么?

我对这个代码很好奇:

cout << 'test'; // Note the single quotes.

给我的输出1952805748.

我的问题是:输出是内存中的地址吗?


慕的地6264312
浏览 595回答 3
3回答

慕盖茨4494581

这是一个多字符的文字。1952805748是0x74657374,分解为0x74&nbsp;->&nbsp;'t'0x65&nbsp;->&nbsp;'e'0x73&nbsp;->&nbsp;'s'0x74&nbsp;->&nbsp;'t'编辑:C+标准,§2.14.3/1-字符文字(.)包含多个c-char的普通字符文字是多字符文字。多字符文字具有int类型和实现-defiNed值。

侃侃尔雅

不这不是地址。这就是所谓的多字节字符。通常,这是四个字符合并的ASCII值。't'&nbsp;==&nbsp;0x74;&nbsp;'e'&nbsp;==&nbsp;0x65;&nbsp;'s'&nbsp;==&nbsp;0x73;&nbsp;'t'&nbsp;==&nbsp;0x74;所以0x74657374是1952805748。但在其他编译器上也可以是0x74736574。C和C+标准都说多字节字符的值是实施定义..所以一般来说它的用途是强气馁。

MYYA

包含多个c-char的普通字符文字是多字符文字。多字符文字具有int类型和实现-defiNed值。实现定义的行为需要由实现来记录。例如,在GCC,你可以找到它。这里编译器一次对一个多字符常量(一个字符)进行赋值,将每个目标字符的位数所留下的前一个值移动,然后将新字符的位模式截断为目标字符的宽度。最后的位模式是给出int类型的,因此是有符号的,不管单个字符是否有符号。检查解释本页想了解更多细节
打开App,查看更多内容
随时随地看视频慕课网APP