C语言学习笔记-结构体、共用体、枚举
来源:互联网 发布:计算机专业不喜欢编程 编辑:程序博客网 时间:2024/05/16 23:40
枚举类型的定义形式为:可以看到,我们仅仅给出了名字,却没有给出名字对应的值,这是因为枚举值默认从 0 开始,往后逐个加 1(递增);也就是说,week 中的 Mon、Tues ...... Sun 对应的值分别为 0、1 ...... 6。更为简单的方法是只给第一个名字指定值:Mon、Tues、Wed 这些名字都被替换成了对应的数字。这意味着,Mon、Tues、Wed 等都不是变量,它们不占用数据区(常量区、全局数据区、栈区和堆区)的内存,而是直接被编译到命令里面,放到代码区,所以不能用
成员列表
};
enum typeName{ valueName1, valueName2, valueName3, ...... };
注意最后的;
不能少。
列出一个星期有几天:
- enum week{ Mon, Tues, Wed, Thurs, Fri, Sat, Sun };
我们也可以给每个名字都指定一个值:
- enum week{ Mon = 1, Tues = 2, Wed = 3, Thurs = 4, Fri = 5, Sat = 6, Sun = 7 };
- enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat
- , Sun };
&
取得它们的地址。这就是枚举的本质。-------------------------------------------华丽的分割线---------------------------------------------------
C语言共用体(Union)
union 共用体名{成员列表
};
结构体和共用体的区别在于:结构体的各个成员会占用不同的内存,互相之间没有影响;而共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员。共用体有时也被称为联合或者联合体,这也是 Union 这个单词的本意。
结构体占用的内存大于等于所有成员占用的内存的总和(成员之间可能会存在缝隙),共用体占用的内存等于最长的成员占用的内存。共用体使用了内存覆盖技术,同一时刻只能保存一个成员的值,如果对新的成员赋值,就会把原来成员的值覆盖掉。
设计一个包含共用体的结构体:
- struct{
- char name[20];
- int num;
- char sex;
- char profession;
- union{
- float score;
- char course[20];
- } sc;
- } bodys[TOTAL];
0 0
- C语言学习笔记-结构体、共用体、枚举
- C语言构造数据类型之结构体、共用体、枚举
- C语言枚举、结构体、共用体综合应用实例
- C语言之结构体、共用体、枚举
- C语言 复合数据类型(结构体 共用体 枚举)
- c语言的结构体、共用体、枚举
- c语言的结构体,共用体和枚举
- C语言系列--数组&字符串&结构体&共用体&枚举
- C语言-结构体/共用体/枚举/文件
- 瘋子C语言笔记(结构体/共用体/枚举篇)
- C语言学习第十五天(共用体、枚举)
- 由C语言位域(冒号)谈C语言的结构体、枚举、共用体
- 【C语言学习笔记】结构体、枚举、预处理指令
- c语言学习笔记之结构体,枚举
- c语言学习笔记之结构体和枚举
- C语言学习笔记10-结构体、枚举、联合体
- C语言学习第十一讲-结构体,共用体
- C语言学习------3.1 结构体和共用体
- 《深度探索C++对象模型(Inside The C++ Object Model )》学习笔记
- OC 自定义身份证键盘
- java多态的理解
- PO、VO、BO、DTO、POJO、DAO 详解
- ITKEE.CN
- C语言学习笔记-结构体、共用体、枚举
- Oracle与Sql Serer的链接桥梁之透明网关的部署与配置详解(一)部署环境描述
- 比特币源码linux下环境配置编译运行bitcoin
- java图片添加水印文字
- 浏览器自动填写问卷或者单选/表单等
- sqlserver数据库备份与还原语句
- 比较两个时分秒时间的大小
- Win10安装IIS并配置ASP.NET 4.0
- 华为oj初级 输入n个整数,输出其中最小的k个