c语言枚举类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言枚举类型相关的知识,希望对你有一定的参考价值。

#include <stdio.h>
void main()

enum color red,yellow,blue,white,black;
enum color i,j,k,pri;
int loop,n=0;
for(i=red;i<=black;i++)
for(j=red;j<=black;j++)
if(i!=j)

for(k=red;k<=black;j++)
if(k!=i&&k!=j)

n++;
printf("%d:\t",n);
for(loop=1;loop<=3;loop++)

switch(loop)

case 1:pri=i;break;
case 2:pri=j;break;
case 3:pri=k;break;

switch(pri)

case red:printf("%s\t","red");break;
case yellow:printf("%s\t","yellow");break;
case blue:printf("%s\t","blue");break;
case white:printf("%s\t","white");break;
case black:printf("%s\t","black");break;


printf("\n");


printf("total:%d",n);


怎么这里3个错误
i++,j++,k++系统说错误

枚举是常量不能自增。通常的做法是
int i = 0;
for(i=red;i<=black;i++)
参考技术A 枚举是常量不能自增。

PC科技
参考技术B 它们位枚举类型 不能++

c语言枚举类型enum用法

参考技术A

c语言枚举类型enum用法如下:


(1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。


(2)DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。


(3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。在当前值没有赋值的情况下,枚举类型的当前值总是前一个值+1.


(4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。


(5) 枚举型是预处理指令#define的替代。


(6) 类型定义以分号;结束。

enum是C语言中的一个关键字,enum叫枚举数据类型,枚举数据类型描述的是一组整型值的集合(这句话其实不太妥当),枚举型是预处理指令#define的替代,枚举和宏其实非常类似,宏在预处理阶段将名字替换成对应的值,枚举在编译阶段将名字替换成对应的值。


我们可以将枚举理解为编译阶段的宏,使用格式:


enum typeName valueName1, valueName2, valueName3, ...... ;

typeName是枚举类型的名字,花括号里面的元素(枚举成员)是常量而不是变量,这个一定要搞清楚,因为枚举成员的是常量,所以不能对它们赋值,只能将它们的值赋给其他的变量。


枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。

以上是关于c语言枚举类型的主要内容,如果未能解决你的问题,请参考以下文章

C语言简单枚举类型

C语言中关于枚举类型

C语言枚举类型是啥意思?

c语言,有没有办法遍历枚举类型

C语言怎样取得枚举型的名字 而不是值

求教C语言枚举类型的问题