设为首页 加入收藏

TOP

C语言枚举类型enum(五)
2013-09-24 09:20:15 来源: 作者: 【 】 浏览:1504
Tags:语言 枚举 类型 enum

 

  也可以用这种方式:

  typedef enum workday

  {

  saturday,

  sunday = 0,

  monday,

  tuesday,

  wednesday,

  thursday,

  friday

  };

  workday today, tomorrow; //变量today和tomorrow的类型为枚举型workday,也即enum workday

  注意:同一个程序中不能定义同名的枚举类型,不同的枚举类型中也不能存在同名的命名常量。错误示例如下所示:

  错误声明一:存在同名的枚举类型

  typedef enum

  {

  wednesday,

  thursday,

  friday

  } workday;

  typedef enum WEEK

  {

  saturday,

  sunday = 0,

  monday,

  } workday;

  错误声明二:存在同名的枚举成员

  typedef enum

  {

  wednesday,

  thursday,

  friday

  } workday_1;

  typedef enum WEEK

  {

  wednesday,

  sunday = 0,

  monday,

  } workday_2;

  3.使用枚举类型的变量

  3.1对枚举型的变量赋值。

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

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

  #include<stdio.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);

  }

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

  #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);

  }

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

  #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

  }

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

  #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

  }

  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.3使用枚举型变量

  #include<stdio.h>

  enum

  {

  BELL          = '/a',

  BACKSPACE = '/b',

  HTAB        = '/t',

  RETURN      = '/r',

  NEWLINE    = '/n',

  VTAB        = '/v',

  SPACE      = ' '

  };

        

首页 上一页 2 3 4 5 6 7 8 下一页 尾页 5/22/22
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言实现定积分求解方法 下一篇C语言对象化编程

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: