c语言声明枚举函数 C语言枚举的使用

C语言,关于枚举

#include stdio.h

成都创新互联作为成都网站建设公司,专注成都网站建设、网站设计,有关成都企业网站建设方案、改版、费用等问题,行业涉及被动防护网等多个领域,已为上千家企业服务,得到了客户的尊重与认可。

struct zh

{

char name[20];

int haoma;

enum {w,m}xb;

char zhiye;

union nn

{

int clas;

char zhiwu[20];

}th;

};

int main()

{

int n,i,j;

struct zh kk[100];

char ch;

scanf("%d",n);

ch=getchar();

for(i=0;in;i++)

{

scanf("%s",kk[i].name);

scanf("%d",kk[i].haoma);

scanf("%d",j);

if(j==0)

kk[i].xb=w;

else

kk[0].xb=m;

printf("=======%d\n",kk[0].xb);

}

return 0;

}

就加了一条输出语句

你给的枚举变量已经赋值了,是默认的

以下是百度上的内容,我觉得写得很正确;

枚举是用标识符表示的整型常数集合,这些常数是该类型变量可取的合法值,这些标识符称为枚举常量。

定义:enum枚举名{标识符1,标识符2...标识符n};

比如enum weekday{sun,mon,tue};

就表示定义了3个枚举型常量,默认他们的值是从0开始,依次递增,也就是sum=0,mon=1,tue=2

你也可以直接给他们赋值,比如enum weekday{sun=1,mon,tue};

如果这样的话mon的值就为2,tue的值就为3.

你也可以用其他变量代替枚举常量的值,比如

enum weekday{sun,mon,tue}a,b,c;

a=sun;

b=mon;

c=tue;

如果输出的话a=0,b=1,c=2

C语言中的枚举函数有什么用呢?

如果一个变量只有几种可能的值,就可以定义为枚举类型。枚举 就是将变量的值一一列举出来,变量的值只限于列举出来值的范围。声名枚举类型用enum开头。如enum number{1,2,3};就让number的值只能是1、2或3,其他是错误的。望采纳。

c语言枚举用法

一、对枚举型的变量赋值。

实例将枚举类型的赋值与基本数据类型的赋值进行了对比:

方法1:先声明变量,再对变量赋值

#includestdio.h

/* 定义枚举类型 */

enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN };

void main()

{

/* 使用基本数据类型声明变量,然后对变量赋值 */

int x, y, z;

x = 10;

y = 20;

z = 30;

/* 使用枚举类型声明变量,再对枚举型变量赋值 */

enum DAY yesterday, today, tomorrow;

yesterday = MON;

today     = TUE;

tomorrow  = WED;

printf("%d %d %d \n", yesterday, today, tomorrow);

}

方法2:声明变量的同时赋初值

#include stdio.h

/* 定义枚举类型 */

enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN };

void main()

{

/* 使用基本数据类型声明变量同时对变量赋初值 */

int x=10, y=20, z=30;

/* 使用枚举类型声明变量同时对枚举型变量赋初值 */

enum DAY yesterday = MON, 

today = TUE,

tomorrow = WED;

printf("%d %d %d \n", yesterday, today, tomorrow);

}

方法3:定义类型的同时声明变量,然后对变量赋值。

#include stdio.h

/* 定义枚举类型,同时声明该类型的三个变量,它们都为全局变量 */

enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN } yesterday, today, tomorrow;

/* 定义三个具有基本数据类型的变量,它们都为全局变量 */

int x, y, z;

void main()

{

/* 对基本数据类型的变量赋值 */

x = 10;  y = 20;  z = 30;

/* 对枚举型的变量赋值 */

yesterday = MON;

today     = TUE;

tomorrow  = WED;

printf("%d %d %d \n", x, y, z); //输出:10 20 30

printf("%d %d %d \n", yesterday, today, tomorrow); //输出:1 2 3

}

方法4:类型定义,变量声明,赋初值同时进行。

#include stdio.h

/* 定义枚举类型,同时声明该类型的三个变量,并赋初值。它们都为全局变量 */

enum DAY

{

MON=1, 

TUE,

WED,

THU,

FRI,

SAT,

SUN 

}

yesterday = MON, today = TUE, tomorrow = WED;

/* 定义三个具有基本数据类型的变量,并赋初值。它们都为全局变量 */

int x = 10, y = 20, z = 30;

void main()

{

printf("%d %d %d \n", x, y, z); //输出:10 20 30

printf("%d %d %d \n", yesterday, today, tomorrow); //输出:1 2 3

}

2、对枚举型的变量赋整数值时,需要进行类型转换。

#include stdio.h

enum DAY { MON=1, TUE, WED, THU, FRI, SAT, SUN };

void main()

{

enum DAY yesterday, today, tomorrow;

yesterday = TUE;

today = (enum DAY) (yesterday + 1); //类型转换

tomorrow = (enum DAY) 30; //类型转换

//tomorrow = 3; //错误

printf("%d %d %d \n", yesterday, today, tomorrow); //输出:2 3 30

}

3、使用枚举型变量

#includestdio.h

enum

BELL          = '\a',

BACKSPACE = '\b',

HTAB         = '\t',

RETURN      = '\r',

NEWLINE    = '\n', 

VTAB         = '\v',

SPACE       = ' '

};

enum BOOLEAN { FALSE = 0, TRUE } match_flag;

void main()

{

int index = 0;

int count_of_letter = 0;

int count_of_space = 0;

char str[] = "I'm Ely efod";

match_flag = FALSE;

for(; str[index] != '\0'; index++)

if( SPACE != str[index] )

count_of_letter++;

else

{

match_flag = (enum BOOLEAN) 1;

count_of_space++;

}

printf("%s %d times %c", match_flag ? "match" : "not match", count_of_space, NEWLINE);

printf("count of letters: %d %c%c", count_of_letter, NEWLINE, RETURN);

}

C语言中关于枚举类型

1.enum

枚举的定义

枚举类型定义的一般形式为:

enum 枚举名{ 枚举值表 };

在枚举值表中应罗列出所有可用值。这些值也称为枚举元素。

例如:

该枚举名为weekday,枚举值共有7个,即一周中的七天。凡被说明为weekday类型变量的取值只能是七天中的某一天。

2.

枚举变量的说明

如同结构和联合一样,枚举变量也可用不同的方式说明,即先定义后说明,同时定义说明或直接说明。

设有变量a,b,c被说明为上述的weekday,可采用下述任一种方式:

enum weekday{ sun,mou,tue,wed,thu,fri,sat };

enum weekday a,b,c;

或者为:

enum weekday{ sun,mou,tue,wed,thu,fri,sat }a,b,c;

或者为:

enum { sun,mou,tue,wed,thu,fri,sat }a,b,c;

3、枚举类型变量的赋值和使用

枚举类型在使用中有以下规定:

a.

枚举值是常量,不是变量。不能在程序中用赋值语句再对它赋值。

例如对枚举weekday的元素再作以下赋值:

sun=5;

mon=2;

sun=mon;

都是错误的。

b.

枚举元素本身由系统定义了一个表示序号的数值,从0开始顺序定义为0,1,2…。如在weekday中,sun值为0,mon值为1,…,sat值为6。

int main(){

enum weekday

{ sun,mon,tue,wed,thu,fri,sat } a,b,c;

a=sun;

b=mon;

c=tue;

printf("%d,%d,%d",a,b,c);

return 0;

}

说明:

只能把枚举值赋予枚举变量,不能把元素的数值直接赋予枚举变量。如:

a=sum;

b=mon;

是正确的。而:

a=0;

b=1;

是错误的。如一定要把数值赋予枚举变量,则必须用强制类型转换。

如:a=(enum

weekday)2;

其意义是将顺序号为2的枚举元素赋予枚举变量a,相当于:

a=tue;

还应该说明的是枚举元素不是字符常量也不是字符串常量,使用时不要加单、双引号。

int main(){

enum body

{ a,b,c,d } month[31],j;

int i;

j=a;

for(i=1;i=30;i++){

month[i]=j;

j++;

if (jd) j=a;

}

for(i=1;i=30;i++){

switch(month[i])

{

case a:printf(" %2d %c\t",i,'a'); break;

case b:printf(" %2d %c\t",i,'b'); break;

case c:printf(" %2d %c\t",i,'c'); break;

case d:printf(" %2d %c\t",i,'d'); break;

default:break;

}

}

printf("\n");

return 0;

}


本文标题:c语言声明枚举函数 C语言枚举的使用
网站路径:http://myzitong.com/article/hjpses.html