and*_*312 3 c++ int ascii char
我想了解这段代码的结果:
#include<iostream>
using namespace std;
int main()
{
int a = 'dd';
cout << a;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
结果是25700.编译器如何获得此数字?谢谢
'dd'是一个多字符文字,它的类型是int,它的值是实现定义的.
在许多实现中,该值被计算为256 * 'd' + 'd',即25700.
来自C++11§2.13.2字符文字
...包含多个c-char的普通字符文字是多字符文字.多字符文字具有类型
int和实现定义的值.
ascii代码为'd'0x64.文字'dd'由编译器表示为0x6464,以十进制表示法写入时为25700.