[英]what is the default value of enum variable?
我对c ++中的枚举变量有疑问:
type enmu {
DAY1 = 1,
DAY2,
DAY3,
DAY4
} DAYS;
void main() {
DAYS days;
}
然后天的默认值是多少?
读取值是未初始化和未定义的行为 。
就像说
int x;
在初始化之前, x
没有值。
然后天的默认值是什么?`
与任何自动对象一样, days
对象的值是不确定的。
现在,如果使用static
说明符声明对象:
static DAYS days;
然后,对于任何算术类型的静态对象,初始值将为0
。
枚举的行为与整数非常相似,即它们没有明确定义的默认值。 在初始化变量之前,无法读取变量的值而不调用未定义的行为。
顺便说一句,加入的话,之前说:你真的可以有一个静态变量枚举默认值。 但要小心 - 它将是0(以及所有其他静态变量)。 考虑以下代码:
#include <iostream>
enum _t_test {
test_1 = 1,
test_2 = 2,
test_3 = 3,
};
static enum _t_test t;
int main()
{
using namespace std;
cout << "Value of t is: " << t;
return 0;
}
它将打印0,但您的枚举范围为1..3。 所以要注意它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.