将 2 个字符分配给一个 int
Assign 2 char to an int
我试图理解这段代码的结果:
#include<iostream>
using namespace std;
int main()
{
int a = 'dd';
cout << a;
return 0;
}
结果是25700,编译器是怎么得到这个数字的?
谢谢
'd'
的 ascii 码是 0x64。编译器将文字 'dd'
表示为 0x6464,用十进制表示法表示为 25700。
'dd'
是一个多字符文字,它的类型是 int
并且它的值是实现定义的。
在许多实现中,该值计算为 256 * 'd' + 'd'
,即 25700
。
来自 C++11 §2.13.2 字符文字
... An ordinary character literal that contains more than one c-char is a multicharacter literal. A multicharacter literal has type int
and implementation-defined value.
'dd'
被语句 int a='dd';
隐式转换为 int
值
我试图理解这段代码的结果:
#include<iostream>
using namespace std;
int main()
{
int a = 'dd';
cout << a;
return 0;
}
结果是25700,编译器是怎么得到这个数字的? 谢谢
'd'
的 ascii 码是 0x64。编译器将文字 'dd'
表示为 0x6464,用十进制表示法表示为 25700。
'dd'
是一个多字符文字,它的类型是 int
并且它的值是实现定义的。
在许多实现中,该值计算为 256 * 'd' + 'd'
,即 25700
。
来自 C++11 §2.13.2 字符文字
... An ordinary character literal that contains more than one c-char is a multicharacter literal. A multicharacter literal has type
int
and implementation-defined value.
'dd'
被语句 int a='dd';
int
值