作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我通过使用枚举声明新类型 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;
}
最佳答案
枚举不限于仅采用声明的值。
它有一个底层类型(一个数字类型,至少大到足以表示所有值),并且可以通过适当的狡猾转换,被赋予该类型可表示的任何值。
此外,使用未初始化的变量会产生未定义的行为,因此原则上任何事情都有可能发生。
关于c++ - 未初始化的枚举变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17699949/
我是一名优秀的程序员,十分优秀!