c\c++复习基础要点16----枚举类型
枚举类型:
语法格式:
enum 枚举类型名 {变量值列表};
例如:
enum Weekday{sun, mon, tue, wed, thu, fri, set};
声明了枚举类型后,就可以定义枚举类型的变量了。定义枚举变量的语法格式为:
enum 枚举类型名 标示符;
或
枚举类型名 标示符;
例如:
enum Weekday aday;
也可以把声明枚举类型和定义枚举类型变量合为一步:
enum{变量列表} 标示符;
例如:
enum {sun, mon, tue, wed, thu, fri, set} aday;
变量aday的值只能是sun到sat之一
声明枚举类型时,变量值列表中的标示符是一些符号常量,每一个都对应一个确定的整数值。第一个符号常量的值为0,第二为1,以此类推。
也可以在声明枚举类型时自行制定符号常量的值,制定的值必须是整数。
例如:
enum Weekday{sun, mon , tue=5, wed, fri,sat};
其中,sun=0、mon=1、tue=5、wed=6、….sat=9.
不能把一个整数值直接赋值给一个枚举类型的变量:
aday=2; //错误
但是可以通过强制类型转换将整数赋值给枚举类型的变量。
例如:
aday=(Weekday)2;
实例:
#include<iostream>
using namespace std;
void main()
{
enum Weekday{sun , mon , tue , wed , thu , fri , sat};
Weekday day1 , day2;
int in1,in2;
cout<< “请输入两个0到6之间的整数:”<<endl;
cin>>in1>>in2;
day1=(Weekday)in1;
day2=(Weekday)in2;
if(day1==day2)
{
cout<< “您输入的都是”;
switch(day1)
{
case sun: cout<< “星期日”<<endl; break;
case mon: cout<< “星期一”<<endl; break;
case tue: cout<< “星期二”<<endl; break;
case wed: cout<< “星期三”<<endl; break;
case thu: cout<< “星期四”<<endl; break;
case fri: cout<< “星期五”<<endl; break;
case sat: cout<< “星期六”<<endl; break;
}
}
else
{
cout<< “您输入的两天分别是:”;
switch(day1)
{
case sun: cout<< “星期日”<<endl; break;
case mon: cout<< “星期一”<<endl; break;
case tue: cout<< “星期二”<<endl; break;
case wed: cout<< “星期三”<<endl; break;
case thu: cout<< “星期四”<<endl; break;
case fri: cout<< “星期五”<<endl; break;
case sat: cout<< “星期六”<<endl; break;
}
switch(day2)
{
case sun: cout<< “星期日”<<endl; break;
case mon: cout<< “星期一”<<endl; break;
case tue: cout<< “星期二”<<endl; break;
case wed: cout<< “星期三”<<endl; break;
case thu: cout<< “星期四”<<endl; break;
case fri: cout<< “星期五”<<endl; break;
case sat: cout<< “星期六”<<endl; break;
}
}
}
一道面试题:
下面代码片段的输出是:
enum{
A ,B , C = 1 ,D,
};
std::cout<<B<< ‘ ’<<D<<std::endl;
A 1 1 B 1 2 C 2 1 D 2 2
答案:B
默认下”接下来的枚举子取值是前面一个枚举子的取值+1“。既然这两个枚举子没有显式赋值,那么就按照默认规则办事,所以B==1,D==2 从这个例子也可以看出,同一枚举中枚举子的取值不需要唯一。
c\c++复习基础要点16----枚举类型的更多相关文章
- Java基础教程:枚举类型
Java基础教程:枚举类型 枚举类型 枚举是将一具有类似特性的值归纳在一起的方法.比如,我们可以将周一到周日设计为一个枚举类型.彩虹的七种颜色设计为一个枚举类型. 常量实现枚举 我们通过定义常量的方式 ...
- java基础知识代码-------枚举类型
package com.mon10.day22; /** * 类说明 :枚举类型,案例二 * * @author 作者 : chenyanlong * @version 创建时间:2017年10月22 ...
- Java基础教程(15)--枚举类型
枚举类型定义了一个枚举值的列表,每个值是一个标识符.例如,下面的语句声明了一个枚举类型,用来表示星期的可能情况: public enum Day { SUNDAY, MONDAY, TUESDAY ...
- C#基础 结构体 枚举类型
结构体:就是一个自定义的集合,里面可以放各种类型的元素,用法大体跟集合一样. 一.定义的例子: struct student { public int nianling; public int fen ...
- JAVA基础部分复习(七、JAVA枚举类型使用)
/** * java中的枚举 * 枚举(enum),是指一个经过排序的.被打包成一个单一实体的项列表.一个枚举的实例可以使用枚举项列表中任意单一项的值. * 枚举在各个语言当中都有着广泛的应用,通常用 ...
- c/c++ 复习基础要点01-const指针、指针函数 函数指针、new/delete与malloc/free区别与联系
1. 引用本身是有指针实现的:引用为只读指针 例子: int d=123; int& e=d; //引用 int * const e=d; //只读指针,e指向d,不可修改e指 ...
- c++复习基础要点02 虚函数与模板 与static inline是否共存
1. 虚函数能否定义为模板函数 当一个类有虚函数时,它一定有一个虚表,用来纪录每个虚函数的实际地址.这也就是说这个虚表的大小是在编译期就确定了的.有多少个虚函数,虚表就纪录几个. ...
- c\c++复习基础要点08--c++单例模式
单例模式有许多种实现方法,在c++中,甚至可以直接用一个全局变量做到这一点,但是这样的代码显得不优雅.使用全局对象能够保证方便地访问实例,但是不能保证只声明一个对象——也就是说除了一个全局实例外,仍然 ...
- C#语言基础——结构体和枚举类型
结构体和枚举类型 一.结构体(struct) 结构类型是用户自己定义的一种类型,它是由其他类型组合而成的,可包含构造函数.常数.字段.方法.属性.索引器.运算符.事件和嵌套类型的值类型.结构在几个重要 ...
随机推荐
- Spring Boot笔记(一)
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过 ...
- Lua与C/C++交互问题
初学lua,遇到注册C/C++交互函数问题 在lua与C/C++交互时,C/C++的注册Lua函数若是一个有返回类型(压栈)而不是获取类型的时候应该返回1而不是返回0,否则会出现在Lua中值为nil( ...
- 217. Contains Duplicate(C++)
217. Contains Duplicate Given an array of integers, find if the array contains any duplicates. Your ...
- 《玩转shutdown》-linux命令五分钟系列之十三
1 我想立即关机! $shutdown -h now 2 我想立即重启 $shutdown -r now 3 我想在23:30分准时关机 $shutdown -h 23:30 4 我想在15分钟后关机 ...
- jquery ajax 后台响应成功,返回正确json但不执行success方法,执行error的问题
昨天被这问题卡了好几个小时.查看http状态码:是200.而且返回了预想的json字符串.但执行的是error方法,不执行success方法.在网上查了一下,才发现是后台页面返回的json字符串格式不 ...
- 零售ERP开发(一)
随着企业信息化不断提高,各种企业管理系统应用而生:怎么才能开发一套简洁.易用.功能健全的管理系统,尤其是能够帮助企业做出重大策略的系统,一致是我们追求的目标.近些年,接触的Erp系统主要包括国内比较知 ...
- fedora23开发环境搭建手册
chrome安装 [安装chrome教程] nodejs环境搭建 dnf install nodejs dnf install npm sublime text 编辑器安装配置 [fedora安装su ...
- git推送失败的问题
git报错如下: fatal: 'origen' does not appear to be a git repositoryfatal: The remote end hung up unexpec ...
- 支付宝集成SDK 报错
1.打开Demo中的错误 这是路径错误导致 解决办法:在Build Settings 中找到 Library Search Paths ,去掉其中的 /// 2.自己集成支付宝SDK时的错误 这个也是 ...
- App接口设计原则-b
1.记住密码不是真的让你记住密码,这里仅仅指的是一种自动登录的手段.不管在任何地方,明文存储的密码都是安全隐患,是必须尽量避免的.你可以采用某种方式对用户名.密码以及时间戳(重要)进行签名,再次登录时 ...