我有以下代码:
enum e {
X=1,
Y,
Z
}
如果第一个定义为 1,枚举元素的值是多少?
其他元素会每增加 1 吗?
正如其他人所说,答案是肯定的。这是标准的说法。
C99 规范。第 6.7.2.2 节枚举说明符。第 3 段
枚举器列表中的标识符被声明为具有 int 类型的常量,并且可以出现在任何允许的地方。)带有 = 的枚举器将其枚举常量定义为常量表达式的值。如果第一个枚举数没有 =,则其枚举常数的值为 0。
后面的每个没有 = 的枚举数都将其枚举常量定义为前一个枚举常量的值加 1 得到的常量表达式的值。(使用带 = 的枚举数可能会产生枚举常量,其值与同一枚举中的其他值重复。)
枚举的枚举数也称为其成员。
如果第一个定义为 1,枚举元素的值是多少?
Y = 2,Z = 3(除非另有说明)。
其他元素是否会每增加 1?
是的。
是的,Y 为 2,Z 为 3。如果没有明确设置,枚举会增加。