c语言学习笔记 - 枚举类型
今天学习了c语言的枚举类型的使用,可能是PHP里没使用过,开始看的时候还是觉得有点怪,后来做了下例子才理解,这里做个笔记记录一下。
#include <stdio.h>
enum animals {Cat,Dog,Rat}; // enumeration 是遍历, 列举的意思,这里用 enum 表示枚举变量 可以这样记 e + num ->every num 每一个 ->枚举
// animals 指这个枚举类型的标签名,例如一组蔬菜常量名字可以用 vegetable来做标记,后边的 {Cat,Dog,Rat}是这一组常量列表,这和数组有点像但又不一样
// 因为是常量,这些Cat,Dog,Rat不用加单引号变成字符串。
//默认 Cat 这个常量是用 0,Dog是1,Rat是2 ,如果想要Cat从1开始 ,则用{Cat=1,Dog,Rat} 后面会递增1
void cat_say(void){
puts("喵喵");
}
void dog_say(void){
puts("汪汪");
}
void rat_say(void){
puts("吱吱");
}
int main(void)
{
enum animals selected; // enum animals 这个是指 selected是 enum animals这样一种枚举类型变量 还没有赋值,后面会赋值
// 就好比 int i; i是int型一样,只不过这里是 enum animals这种自定义的枚举类型变量
printf("请输入一个动物的代号,你将得到它的叫声 0代表Cat, 1代表Dog 2代表rat \n");
int choose;
scanf("%d",&choose);
selected=(enum animals)choose; // 注意这里 ,selected 开始具体赋值了,c语言赋值要类型点对点,事先声明的类型要能对上,这和PHP不一样
// 这个(enum animals)并不是什么奇怪的东西,就是一种类型转换 比如之前用的 (double)a 把一个数转成double类似
//这里假如 choose = 1 selected 会是 Dog 常量,但不能直接 printf("%s",selected);,只能是printf("%d",selected);输出一个数字
switch(selected){
case Cat: //常量
cat_say();
break;
case Dog:
dog_say();
break;
case Rat:
rat_say();
break;
}
return 0;
}
c语言学习笔记 - 枚举类型的更多相关文章
- C语言学习之枚举类型
前言 枚举(enum)类型是计算机编程语言中的一种数据类型.枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内.例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等.如果把 ...
- C语言学习笔记--枚举&结构体
枚举 枚举是一种用户定义的数据类型,它用关键字enum以如下语法格式来声明: enum 枚举类型名字 {名字0,名字1,...,名字n}: 枚举类型名字通常并不真的使用,要用的是大括号里面的名字,因为 ...
- Java学习笔记-枚举类型
枚举类型 枚举类型就是预先定义的一类常量集合,如一周的时间.水果的类型等.需要注意的几点内容如下: 定义枚举类时,Java默认继承java.lang.Enum,所以定义的枚举类不能继承其他类型: 枚举 ...
- Java编程思想学习笔记——枚举类型
前言 关键字enum可以将一组具名的值有限集合创建一种为新的类型,而这些具名的值可以作为常规的程序组件使用. 正文 基本enum特性 调用enum的values()方法可以遍历enum实例,value ...
- GO语言学习笔记2-int类型的取值范围
相比于C/C++语言的int类型,GO语言提供了多种int类型可供选择,有int8.int16.int32.int64.int.uint8.uint16.uint32.uint64.uint. 1.i ...
- C语言学习笔记10-结构体、枚举、联合体
C语言学习笔记10-结构体.枚举.联合体 待传
- Go语言学习笔记(1)——顺序编程
Go语言学习笔记这一堆主要是<Go语言编程>(人民邮电出版社)的读书笔记.中间会穿插一些零碎的点,比如源码学习之类的.大概就是这样吧. 1. 顺序编程 1.1 变量 变量的声明: var ...
- python语言学习笔记整理
什么是程序? 程序等于数据结构加算法,那么数据结构是一个静态的东西,算法是一个动态的东西,我们用一个新的语言编写这个程序,我们要考虑到语言也主要由数据结构和算法相关的东西,或静态或动态的东西来构成,所 ...
- GO语言学习笔记(一)
GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...
随机推荐
- linux下phpstudy安装
linux下phpstudy安装 一.总结 一句话总结: 就是下载然后一步步用指令安装即可 二.linux下phpstudy安装 参考:linux下phpstudy安装https://www.cnbl ...
- error C2220: warning treated as error - no object file generated的处理方法
WDK/DDK中掉 error C2220: warning treated as error - no 'object' file generated 2009-04-01 15:54 网上搜索而来 ...
- mavlink 笔记1
Packet Anatomy This is the anatomy of one packet. It is inspired by the CAN and SAE AS-4 standards. ...
- HTTP协议请求篇
http协议的基本概念 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议.是工作在tcp/ip协议基础上的,所有的WWW文件都必须 ...
- 复杂Linq语句写法
从网上收藏的复杂Linq语句写法 1.case when: 原型: sql原型: SELECT ProductID, Name, Color, CASE WHEN Color = 'Red' THEN ...
- eclipse-帮助文档
Eclipse开发环境配置 1. java环境 安装 本系统使用java6开发,老师使用1.6.0 _45版本开发,如下图所示: “开发工具”目录提供了1.6.0 _45版本32位和6 ...
- lync sdk 二次开发
1.关于 UI Suppression Mode http://blog.thoughtstuff.co.uk/2014/08/the-6-things-you-need-to-know-about- ...
- vue element传的值报_self.$scopedSlots.default is not a function
问题描述:使用表格时做了v-if判断:首次渲染没有问题:反复操作便会报错: 解决办法:el-table上给v-if的 el-table-colunm 加上:key="Math.random( ...
- antidependence and data hazard
See below example. ADDD F6, F0, F8 SUBD F8, F10, F14 Some article would say that “ There’s an ant ...
- 暑期集训日志(Day0~Day5)
章·五:2019-07-15:明月不谙离恨苦,斜光到晓穿朱户 ·昨日小结: 昨天考试又是爆零边缘,除了难过就剩难过了. T1暴力打崩了只拿了5分. T2没给分时间.最后20分钟打了个残码.没仔细观察数 ...