C ++枚举索引值

时间:2018-05-06 19:47:16

标签: c++ enums

据我所知,如果我们有enum n{sunday //0,monday //1 ,Tuesday //2}

所以enum r { one, two = 4, three = 1, four};

一个的值应为0,两个为4,三个为1,四个为3

我试过

cout << four

结果是

  

2

2 个答案:

答案 0 :(得分:1)

enum就是这样的,让我们按照你的例子来说:

enum r { one, two = 4, three = 1, four};

one0开头,因为没有定义初始值。

two如果未被声明为4,则4定义为two,而1则为three

1被定义为two,如果three2未在之前声明,则为1而是four {1}}。

three没有任何相等性,因此会分配下一个值,因为four为1,2enum r { one, two, three, four};

如果没有分配值,它看起来像这样:

one

0 = two1 = three2 = four3 = <video>

我希望这会对你有所帮助。

答案 1 :(得分:0)

由于three已分配为1且four未分配,因此已将其指定为three+1,因此four = three + 1