我使用枚举声明了新的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;
}

最佳答案

枚举不限于仅采用声明的值。

它具有基础类型(数字类型至少大到足以表示所有值),并且可以通过适当的躲避类型转换为该类型表示可表示的任何值。

此外,使用未初始化的变量会产生未定义的行为,因此原则上任何事情都可能发生。

10-08 09:44