C ++在输出中显示' 123',3224115(使用cout)

时间:2016-02-07 13:52:44

标签: c++ char literals

这是我的c ++作业,请帮帮我。 (我已经用谷歌搜索过,没有发现任何内容)

int main()
{
    std::cout<<'123';
    getchar();
    return 0;
}
输出

你得到3224115。 为什么呢?

2 个答案:

答案 0 :(得分:2)

改为写

std::cout << "123";
             ^   ^

'123'是一个字符文字,具有实现定义的值和类型int

可以想象例如以下方式

#include <iostream>

int main() 
{
    int x = 0x313233;

    std::cout << x << std::endl;

    return 0;
}

其中0x310x320x33是字符'1''2''3'的ASCII代码。

对于此程序,输出可以是

3224115

答案 1 :(得分:0)

引用C standard(第61页)

  

包含多个的整数字符常量的值   字符(例如,'ab'),或包含字符或转义序列   不映射到单字节执行字符的是   实现定义的。