据我所知,如果我们有enum n{sunday //0,monday //1 ,Tuesday //2}
所以enum r { one, two = 4, three = 1, four};
一个的值应为0
,两个为4
,三个为1
,四个为3
我试过
cout << four
结果是
2
答案 0 :(得分:1)
enum
就是这样的,让我们按照你的例子来说:
enum r { one, two = 4, three = 1, four};
one
以0
开头,因为没有定义初始值。
two
如果未被声明为4
,则4
定义为two
,而1
则为three
。
1
被定义为two
,如果three
和2
未在之前声明,则为1
而是four
{1}}。
three
没有任何相等性,因此会分配下一个值,因为four
为1,2
为enum r { one, two, three, four};
。
如果没有分配值,它看起来像这样:
one
0
= two
,1
= three
,2
= four
,3
= <video>
我希望这会对你有所帮助。
答案 1 :(得分:0)
由于three
已分配为1且four
未分配,因此已将其指定为three+1
,因此four = three + 1