将2个char分配给int

时间:2015-03-17 14:08:29

标签: c++ char int ascii

我想了解这段代码的结果:

#include<iostream>

using namespace std;

int main()
{
    int a = 'dd';
    cout << a;
    return 0;
}

结果是25700.编译器如何获得此数字? 感谢

3 个答案:

答案 0 :(得分:6)

'dd'是一个多字符文字,其类型为int,其值为实现定义。

在许多实现中,该值计算为256 * 'd' + 'd',即25700


来自C ++11§2.13.2字符文字

  

...包含多个c-char的普通字符文字是多字符文字。多字符文字具有类型int和实现定义的值。

答案 1 :(得分:5)

'd'的ascii代码是0x64。文字'dd'由编译器表示为0x6464,以十进制表示法写入时为25700。

答案 2 :(得分:0)

'dd'通过语句int

隐式转换为int a='dd';