c中共用体简谈
来源:互联网 发布:mac office 2011 汉化 编辑:程序博客网 时间:2024/05/20 22:29
共用体 P319-P324
共用体与结构体的区别:
结构体定义一个由多个数据成员组成的特殊类型,而共用体定义了一块所有数据成员共享的内存。
共用体的概念:
共用体,又名联合体。它将不同类型的变量存放到同一段内存单元中,即共用体在同一时刻只能有一个值,属于某一个数据成员。由于所有成员位于同一块内存,因此共用体的占用空间大小就等于最大成员的大小。
定义的一般形式:
union 共用体名
{
成员列表
}变量列表;
eg:
union DataUnion
{
int iint;
char cChar;
float fFloat;
}variable; //定义共用体变量
ps:共用体变量variable的大小就和float类型的大小相等。
共用体的引用
共用体变量定义完成后,就可以引用其中的成员数据进行使用。
引用的一般形式:
共用体变量.成员名:
eg:
variable.iint;
variable.cChat;
PS:不能直接引用共用体变量,如printf("%d",variable);
共用体变量的初始化
对共用体变量初始化时,只需要一个初始化就足够了,其类型必须和共用体的第一个成员的类型相一致。
eg: union DataUnion Union={97};
如果共用体的第一个成员是一个结构体类型,则初始化值中可以包含多个用于初始化该结构的表达式。
warning:可以试试看将共用体的第一个设为int,第二个设为数组,第三个设为结构体类型,看看输出结果,并改变顺序再次查看,思考原因(提示:不同类型分配的存储空间不同)
共用体类型的数据特点:
同一个内存段可以用来存放几种不同类型的成员,但是每一次只能存放其中一种,而不是同时存放所有的类型。即共用体中,只有一个成员起作用,其他的成员不起作用。
共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员就失去作用。
共用体变量的地址和它的各成员的地址是一样的。
不能对共用体变量赋值,也不能企图引用变量名来得到一个值。
枚举类型
一个枚举变量包含一组相关的标识符,其中每个标识符都对应一个整数值,称为枚举常量。
eg:enum Colors(Red,Green,Blue);
其中Colors就是定义的枚举类型变量,在括号中的第一个标识符对应着的数值0,第二个对应于1,以此类推。
在枚举类型中,每个标识符都必须是唯一的,而且不能采用关键字或当前作用域内的其他相同的标识符。在定义枚举类型的变量时,可以为某个特定的标识符指定其对应的整形值,紧随其后的标识符对应的值依次加1,eg:enum Colors(Red=1,Green,Blue);
共用体与结构体的区别:
结构体定义一个由多个数据成员组成的特殊类型,而共用体定义了一块所有数据成员共享的内存。
共用体的概念:
共用体,又名联合体。它将不同类型的变量存放到同一段内存单元中,即共用体在同一时刻只能有一个值,属于某一个数据成员。由于所有成员位于同一块内存,因此共用体的占用空间大小就等于最大成员的大小。
定义的一般形式:
union 共用体名
{
成员列表
}变量列表;
eg:
union DataUnion
{
int iint;
char cChar;
float fFloat;
}variable; //定义共用体变量
ps:共用体变量variable的大小就和float类型的大小相等。
共用体的引用
共用体变量定义完成后,就可以引用其中的成员数据进行使用。
引用的一般形式:
共用体变量.成员名:
eg:
variable.iint;
variable.cChat;
PS:不能直接引用共用体变量,如printf("%d",variable);
共用体变量的初始化
对共用体变量初始化时,只需要一个初始化就足够了,其类型必须和共用体的第一个成员的类型相一致。
eg: union DataUnion Union={97};
如果共用体的第一个成员是一个结构体类型,则初始化值中可以包含多个用于初始化该结构的表达式。
warning:可以试试看将共用体的第一个设为int,第二个设为数组,第三个设为结构体类型,看看输出结果,并改变顺序再次查看,思考原因(提示:不同类型分配的存储空间不同)
共用体类型的数据特点:
同一个内存段可以用来存放几种不同类型的成员,但是每一次只能存放其中一种,而不是同时存放所有的类型。即共用体中,只有一个成员起作用,其他的成员不起作用。
共用体变量中起作用的成员是最后一次存放的成员,在存入一个新的成员后原有的成员就失去作用。
共用体变量的地址和它的各成员的地址是一样的。
不能对共用体变量赋值,也不能企图引用变量名来得到一个值。
枚举类型
一个枚举变量包含一组相关的标识符,其中每个标识符都对应一个整数值,称为枚举常量。
eg:enum Colors(Red,Green,Blue);
其中Colors就是定义的枚举类型变量,在括号中的第一个标识符对应着的数值0,第二个对应于1,以此类推。
在枚举类型中,每个标识符都必须是唯一的,而且不能采用关键字或当前作用域内的其他相同的标识符。在定义枚举类型的变量时,可以为某个特定的标识符指定其对应的整形值,紧随其后的标识符对应的值依次加1,eg:enum Colors(Red=1,Green,Blue);
0 0
- c中共用体简谈
- C语言中共用体的内存
- C语言中共用体(联合体)
- C语言中结构体与共用体(一)
- C语言中结构体与共用体(二)
- C语言中结构体与共用体(三)
- C语言中结构体与共用体(四)
- C语言:共用体
- C语言--共用体
- C语言:共用体
- C语言-共用体
- C共用体
- C语言共用体
- C共用体
- C++----共用数据保护
- C语言:共用体
- C/C++ 共用体
- C 共用体
- 电子电路基础知识——电阻,电容,电感
- 黑苹果引导工具 Clover 配置详解及Clover Configurator使用
- jdbc
- Zurmo(十一)Relation之n:n和1:n(二)
- 线段树2(带有乘法标记)
- c中共用体简谈
- unit1
- css关于文字属性
- uva 673 Parentheses Balance (平衡的括号)堆栈模拟
- word中使用bibtex4word插入参考文献。
- 阿里面试心得
- 《Linux/UNIX系统编程手册》第3章读书笔记
- 快排原理
- Spring依赖注入的三种实现方式