我使用枚举声明了新的DAY类型,然后从中声明了两个变量day1和day2,然后我未初始化使用它们时应该看到0到6之间的值,因为在enumlist中这些值在0到6之间,但是我收到了这些值改为-858993460。
您能解释一下为什么我收到这些值而不是0到6吗?
#include <iostream>
using namespace std;
int main()
{
enum DAY{SAT,SUN,MON,TUE,WED,THU,FRI};
DAY day1,day2;
cout<<int(day1)<<endl<<day1<<endl;
cout<<int(day2)<<endl<<day2<<endl;
system("pause");
return 0;
}
最佳答案
枚举不限于仅采用声明的值。
它具有基础类型(数字类型至少大到足以表示所有值),并且可以通过适当的躲避类型转换为该类型表示可表示的任何值。
此外,使用未初始化的变量会产生未定义的行为,因此原则上任何事情都可能发生。