我用枚举做了一个小测试,这就是我所拥有的:
enum anyoldname : char
{
aa = 'a', ab = 'b', ac = 'c', ad = 'd'
};
int main()
{
anyoldname i_have_an_enum_here = aa; // Would expect i_have_an_enum_here to be of type char?
std::cout << i_have_an_enum_here << std::endl;
return 0;
}
输出是: 98
,除非我像这样显式转换为 char :
std::cout << (char)i_have_an_enum_here;
或更改anyoldname
为char
.
为什么98
打印值而不是b
?
顺便sizeof()
返回1
,即;1 个字节,一个char
.