C语言枚举
时间:2020-02-23 14:32:03 来源:igfitidea点击:
希望大家一切都好。
在本文中,我们将讨论C中的枚举。
什么是枚举?
C中的枚举是用户定义的数据类型。
因此,我们可以根据用户/系统的需求自定义数据并将其存储到其中。
枚举将字符串或者字符值(即枚举标签)分配给整数数据值。
对于每个字符串文字或者值,都有一个分配给它的整数索引,如下所示。
C中的枚举
像C数组一样,枚举从0开始索引值。
因此,枚举可帮助我们简化代码并提高程序的可读性。
现在,让我们了解C编程中的枚举结构。
C中的枚举语法
因此,现在让我们看一下C中的Enum声明:
enum enum-name {enumerators};
枚举名称:将为所有与枚举相关的任务引用一个有效的名称。
"枚举数":命名整数文字。
为了获取并显示存储在枚举中的数据,我们需要使用以下命令将一个对象与其关联:
enum enum-name object;
此外,要显示存储在枚举中的任何数据值,我们可以将对象与指定的字符串文字相关联,如下所示:
object = enumerator;
现在让我们通过一些示例实现上述枚举语法。
示例C中枚举的用法
在下面的示例中,我们已将月份的名称存储在枚举中,并使用分配给"年份"的对象访问了"十二月"的值。
#include<stdio.h> enum year{Jan, Feb, Mar, Apr, May, Jun, July, Aug, Sep, Oct, Nov, Dec}; void main() { enum year obj; obj = Dec; printf("The value of Dec:\n%d",obj); }
输出:
The value of Dec: 11
现在,我们创建了一个工作日的枚举,并使用for循环访问分配给它的每个值。
#include<stdio.h> enum Week_day{Mon, Tue, Wed, Thur, Fri, Sat, Sun}; int main() { for (int x=Mon; x<=Sun; x++) printf("Day: %d\n", x); return 0; }
输出:
Day: 0 Day: 1 Day: 2 Day: 3 Day: 4 Day: 5 Day: 6
在枚举中,如果我们为某些名称或者文字分配特定的整数值,则所有其他未分配的名称将具有一个值,该值将是先前名称的值加1。
看看下面的例子。
#include<stdio.h> enum Week_day{Mon=10, Tue, Wed, Thur, Fri, Sat, Sun}; int main() { for (int x=Mon; x<=Sun; x++) printf("Month: %d\n", x); return 0; }
我们为" Mon" = 10分配了一个值,所有其余枚举文字的值都取其值为前一个名称的值加1。
输出:
Month: 10 Month: 11 Month: 12 Month: 13 Month: 14 Month: 15 Month: 16
枚举中的多个名称/字符串文字可以具有相似的值或者分配给它们的相同值。
让我们看下面的示例以验证上面的语句。
#include <stdio.h> enum switch_value {YES = 1, NO = 0, NEVER = 0}; int main() { printf("YES: %d\t, NO: %d\t, NEVER: %d", YES, NO, NEVER); return 0; }
输出:
YES: 1 , NO: 0 , NEVER: 0