C++中的联合体类型和枚举类型
来源:互联网 发布:洗脑 教育 知乎 编辑:程序博客网 时间:2024/05/08 03:43
一、联合体:
1、特点:
a.) union 关键字可以省略 (指定义联合体变量的时候可以省略关键字)
b.) 支持匿名联合
2、定义格式:
union 联合体名
{
//定义成员.
}; //";" 分号不能丢哦
3、使用(直接上代码)
void UnionFunEx(){union //匿名联合定义{int num;char buf[4];};num = 0x12345678;for (int i = 0 ; i < 4 ; ++i){//cout<<"buf["<<i<<"] = "<<buf[i]<<endl;//小端系统 低位字节保存低位数据printf("%#x,[%p]\r\n",buf[i],&buf[i]);//前面输出值,后面输出所在内存地址(数组中4个元素的地址均一样)}//小端系统 低位字节保存低位数据printf("%#x,%#x,%#x,%#x\r\n",buf[0],buf[1],buf[2],buf[3]); //输出0x78,0x56,0x34,0x12cout<<"----------------------------------------"<<endl;printf("[%p]\r\n",&num);printf("[%p]\r\n",buf);}void UnionFun(){union { //匿名联合定义int n;char c[4];};n = 0x12345678;printf("%x,%x,%x,%x\r\n",c[0],c[1],c[2],c[3]); //输出0x78,0x56,0x34,0x12}
二、枚举
1、特点:
a.) enum 关键字是可以省略的(指当定义枚举变量时,关键enum可以省略)
b.) 枚举是一个独立的数据类型,C语言当中枚举最基本的就是整型 (这一点决定了,C语言和C++语言中使用枚举时完全不同)2、定义格式:
enum 枚举名称 {ONE,TWO,THREE,...}; //";" 分号不能丢
3、使用(直接上代码)
void EnumFunEx(){
enum DIRECTION{UP,DOWN,LEFT=10,RIGHT};
//DIRECTION dd = 66; //编译报错,类型不一致 .C++中不能将整型转换成枚举,因为在C++当中枚举是独立的数据类型。而枚举是可以转换成整数的。
DIRECTION dd = DOWN;
cout<<dd<<endl;
}
void EnumFun()
{
enum E{a,b,c,d};
int n = b; //枚举可以转换成整数
//E e = 10 ; //错误,整数不能给枚举赋值,只能用a,b,c,d赋值.
cout<<"n: "<<n<<endl;
}
0 0
- C++中的联合体类型和枚举类型
- 联合体和枚举类型
- C/C++之联合体,枚举,自定义类型
- 结构体、联合体和枚举类型
- 结构体类型-枚举类型-联合体类型
- 【C/C++】结构体和联合体的区别,以及枚举类型的用法
- 《c/c++之结构体,联合体,枚举类型》
- 学习笔记---枚举类型、联合体、自定义类型
- Objective-C中的枚举类型
- Objective-C中的枚举类型
- C/C++中的枚举类型
- 自定义类型:结构体,枚举,联合体
- 自定义类型:结构体,枚举,联合体
- 自定义类型---->结构体,枚举,联合体
- C#.NET中的DateTime类型和DateTimeKind枚举
- 枚举类型(C和C++中的差别)
- .NET 4.5(C#):TypeInfo类型和反射中的成员枚举
- C/CPP点滴积累—数据类型--结构体、联合体、枚举类型
- 计数排序_COUNTINGSORT
- C++ Primer:第八章:IO库
- YTU-OJ- 复数类--重载运算符+
- 简述configure、pkg-config、pkg_config_path三者的关系
- 纯div+css样式弹出泡泡消息框
- C++中的联合体类型和枚举类型
- 地址转换函数
- 正在读取软件包列表... 有错误!
- (leetcode)Rotate Array
- User-agent获取手机类型
- Android Native/Tombstone Crash Log 详细分析
- YTU-OJ- 复数类--重载运算符+,-,*,/
- fetching Android sdk compoment information的解决办法
- Oracle Exadata一体机与云计算应用(一)