尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

枚举类型相关

枚举类型相关
📅 发布时间:2026/6/29 22:12:42

枚举是一种用户定义的数据类型,用关键字enum以如下语法来声明:

eunm 枚举类型名字{名字0,名字1,....,名字n};

枚举类型名字通常不真的使用,要用的是在大括号里面的名字,因为他们就是常量符号,他们的类型只能是int,值则依次从0到n:

enum colors{red,yellow,green}; //创建三个常量:red==0,yellow==1,green==2

当需要一些可以排列起来的常量值时,定义枚举的意义就是给这些常量值写名字

例子:

include<stdio.h> enum color {red,yellow,green}; //申明了这样一个数据类型color,也就相当于int,float,char等等 void f(enum color c); //使用这种数据类型必须带上enum这个字,叫做color这种枚举类型 int main(void) { enum color t =red; //t是enum color类型的变量,值为red scanf("%d",&t); //当作int类型输入 f(t); return 0; } void f(enum color c) { printf("%d\n",c); //当作int类型输出 }

实际上C语言中enum就是int类型,所以每一个枚举变量是可以作为int类型输入输出

套路:自动计数的枚举 #include <stdio.h> enum COLOR {RED, YELLOW, GREEN, NumCOLORS}; //最后设置NumCOLORS计数,其值为前面枚举量个数 int main(int argc, char const *argv[]) { int color = -1; char *ColorNames [NumCOLORS] = //可以用NumCOLORS定义数组 { //也可以用NumCOLORS判断整数值是否在有效范围内 "red","yellow","green", //也可以用NumCOLORS进行遍历枚举量 }; char *colorName = NULL; printf("输入你喜欢的颜色的代码:"); scanf("%d", &color); if ( color >=0 && color < NumCOLORS) { colorName = ColorNames [color]; } else { colorName= "unknown"; } printf("你喜欢的颜色是%s\n",colorName); }

声明枚举量的时候可以指定值

#include<stdio.h> enum COLOR{RED=1,YELLOW,GREEN=5,NumCOLORS}; //RED赋值为1,其后面的枚举量(YELLOW)就依次加1,,为2,GREEN赋值为5,其后的NumCOLORS依次加1就为6 int main(int argc,char const *argc[]) { printf("code for GREEN is %d\n",GREEN); //输出5 }

枚举实际上只是int

即使给枚举类型的变量赋值不存在的整数,也没有任何报错或者警告

#include<stdio.h> enum COLOR{RED=1,YELLOW,GREEN=5,NumCOLORS}; int main(int argc,char const *argc[]) { enum COLOR color=0; printf("code for GREEN is %d\n",GREEN); //输出5 printf("and color is %d\n",color); //输出0,不报错 }

相关新闻

  • Storprototrace高级配置:如何自定义统计项和过滤规则
  • 如何利用ReadCat阅读器打造纯净小说阅读体验:完整使用指南
  • 面试官挖坑:Gemini有2M上下文,Agent还要记忆干嘛?

最新新闻

  • 竣宝擒龙主升抓主升浪指标公式三步点金副图指标源码 通达信游资主力机构底部启动指标公式源码
  • 跨平台获取macOS系统镜像:告别苹果硬件的限制
  • Blender FLIP Fluids插件:5分钟创建电影级流体特效的终极指南 [特殊字符]
  • 自媒体运营分析:用助睿ETL完成数据清洗与预处理
  • 问题起源:为什么 K380 需要手动切 FN 模式
  • 2026 AI 标书工具综合排名与技术评测:5 款主流产品分梯队解析

日新闻

  • ENVI5.3.1实战:基于Landsat 8影像的区域无缝镶嵌与精准裁剪
  • 3步完成HS2-HF Patch安装:新手快速打造完美HoneySelect2体验
  • 微信好友检测终极指南:3分钟发现谁已悄悄删除你

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号