c++primer plus复合类型之共用体
来源:互联网 发布:php下载文件代码 编辑:程序博客网 时间:2024/05/28 05:13
共用体(union)是一种数据格式,它能够存储不同的数据类型,但只能存储其中的一种类型。也就是说,结构可以同时存储int,long和double,而共用体只能存储int,long或double。共用体与结构体形式相同,但含义不同。例如,
1:共用体的声明
union one4all{ int int_val; long long_val; double double_val;};可以使用one4all类型的变量来存储int,long或double,条件是在不同的时间进行,例如:
one4all pail;pail.int_val=15;cout<<pail.int_val;pail.double_val=1.38;cout<<pail.double_val;pail有时候是int变量,而有时可以是double变量,成员名称标识了变量的容量。由于共用体每次只能存储一个类型的变量,因此,它必须要有足够的存储空间来存储容量最大的数据成员,所以共用体的长度是它最大成员的长度。
2:匿名共用体
匿名共用体没有名称,其成员将成为位于相同地址处的变量。显然,每次只有一个成员是当前成员。例如,
struct widge{ char name[20]; int type; union { long long_vat; char char_val[20]; };};...widge pirze;...if(prize.type==1){cin>>prize.long_val;}else{cin>>prize.char_val;}由于共用体是匿名的,因此long_val和char_val被视为prize的两个成员变量,他们的地址相同,由程序员决定当前哪个成员是活动的。
3:共用体常用于节省内存。
0 0
- c++primer plus复合类型之共用体
- c++primer plus复合类型之枚举
- c++primer plus复合类型之指针
- c++primer plus复合类型之指针2
- C++Primer之复合类型
- c++学习笔记之复合类型(c++ primer plus)
- c++ primer plus复合类型之结构简介
- c++ primer plus复合类型之数组的代替品
- C++ Primer Plus 第四章 复合类型
- C++学习笔记之六 复合类型之共用体
- C Primer Plus-char类型
- C++ Primer Plus学习:第四章 复合类型(1)
- C++ Primer Plus学习:第四章 复合类型(2)
- C++ Primer Plus学习:第四章 复合类型(3)
- C++ Primer Plus学习:第四章 复合类型(4)
- C++ Primer Plus学习:第四章 复合类型(5)
- C++ Primer Plus学习:第四章 复合类型(6)
- C++ primer plus 第4章 复合类型
- javaXML解析的俩种方法-----DOM-----SAX
- list C++
- UIView animateWithDuration 使用详解
- 自然语言处理(1)
- PHP date()获取系统时间不对怎么办?
- c++primer plus复合类型之共用体
- 判断文件是否存在
- HDU-1829 A Bug's Life。并查集构造,与POJ1709异曲同工!
- gitlab备份与恢复
- UE4流程控制
- 排序算法
- 浅谈ScrollView嵌套ListView及ListView嵌套的高度计算
- 分库分表的几种常见形式以及可能遇到的难题
- Go语言实现telnet远程登录