union和enum使用
来源:互联网 发布:程序员输入法技巧 编辑:程序博客网 时间:2024/06/02 06:05
一、联合(union)
1.定义
联合与结构相似,也可以容纳不同类型的值,但每次只能存一个值,若在容纳另一个值将会把前面的值覆盖调(即:多个变量使用同一个内存空间,但内存空间只有1个,所以要这些变量在不同时间用才行)
2.结构
union mima//这里和结构体类似,就是吧struct改为union
{
unsigned long birthday;
unsigned short ssn;
char *pet;
};
mima mima_1;//创建该联合类型的变量
//对结构成员进行赋值
mima_1.birthday=19980105;
//然后再执行下面语句(这里是验证联合类型只能存一个值,否则会被覆盖)
mima_1.pet=”xxx”//执行这个语句时会把birthday成员的值丢弃
3.举例
#include <iostream>using namespace std;union mima{ unsigned long birthday; unsigned short ssn; char *pet;};int main(){ mima mima_1; mima_1.birthday=19980105; cout<<mima_1.birthday<<"\n"; mima_1.pet="xxx"; cout<<mima_1.pet<<"\n"; cout<<mima_1.birthday<<"\n";//这个的值已经被覆盖,输出的是它在内存中的地址 return 0;}//19980105//xxx//4751362
- 1
4.总结
1.为了节省空间时使用联合类型(只提供一个内存)
2.使用不同方式解释数据时不用强制转换时也可以用联合类型
二、枚举(enum)
1.定义
枚举(enum)类型用来创建一个可取值的列表
2.用法(结构)
enum weekdays{Monday,Tuesday,Wednesday,Thursday,Friday};
//下面创建该类型的变量
weekdays today;
//下面方式对它赋值
today Thursday;//注意Monday,Tuesday…这些并不是字符串,而是从0开始的值,变量的赋值只能出现在上面五个元素中
3.举例
#include <iostream>using namespace std;int main(){ enum weekdays{Monday,Tuesday,Wednesday,Thursday,Friday};//这些值不是字符串,默认Monday为0,Tuesday为1...... weekdays today; today=Monday; cout<<today<<"\n"; today=Tuesday; cout<<today<<"\n"; return 0;}//结果是0,1
- 1
- 若将Monday赋值为1
#include <iostream>using namespace std;int main(){ enum weekdays{Monday=1,Tuesday,Wednesday,Thursday,Friday}; weekdays today; today=Monday; cout<<today<<"\n"; today=Tuesday; cout<<today<<"\n"; return 0;}//结果是1,2
- 1
4.总结
1.它可以对变量的可取值加以限制(比如本来枚举定义为Monday,若后面写成Monday1,是不实现的)
2.它可以用作switch条件语句的case标号(因为字符串不能作为case的标号用)(小技巧)
阅读全文
0 0
- union和enum使用
- union和enum的使用
- enum和struct何union
- union&enum
- 共用体union和枚举enum
- C_C语言的enum、struct、union的使用详解
- C语言共用体union和枚举类型enum
- C语言难点专题——enum, struct 和 Union
- 结构struct 联合Union和枚举Enum的细节讨论
- 结构struct 联合Union和枚举Enum的细节讨论
- 《C关键字分析》之sizeof,enum、union和struct
- 共用体union 和枚举类型enum (C)
- C - enum和typedef enum的使用
- enum和enum class的使用
- enum union #define typedef
- struct union enum
- enum struct union
- struct/enum/union用法
- Spring MVC之@RequestBody, @ResponseBody 详解
- tensorflow关于tf.train.Saver()
- java对properties文件的读写操作
- android:configChanges属性总结
- 离群点过滤
- union和enum使用
- 向贺老师学C语言-发工资
- 山东省第八届acm省赛K题 CF
- 说个很操蛋的HTTPS的坑儿
- Spring Boot 揭秘与实战(九) 应用监控篇
- Zookeeper简单介绍
- 读-秦小波-编写高质量代码:改善java程序的151个建议
- select
- 房间安排