700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 共用体和枚举类型

共用体和枚举类型

时间:2023-06-07 19:01:44

相关推荐

共用体和枚举类型

共用体类型定义:

使用同一块内存(同一个内存起始地址),存放多个不同类型的变量。使用覆盖技术来实现共用体,但是需要注意的是,同一瞬时一个内存地址只能存放一种变量,共用体变量中只能存放一个值,否则就会被覆盖。共用体变量中起作用的是最后一次(最近一次)被赋值的概念。

定义

union 共用体名{成员列表}变量列表

定义方式类似于结构体。

举例:

union Data{int i;char ch;float f;}a,b,c;

等价于:

union Data{int i;char ch;float f;};union Data a,b,c;

引用

a.i;a.ch;a.f;

可以在一段程序中全部使用,但是实际上同一瞬时只有一个成员值。

共用体和结构体的区别

结构体变量所占内存长度是全部成员变量的内存长度之和。每个成员有自己分别的内存空间。共用体变量所占内存长度等于最长成员的长度。同一时间只允许被赋给一个成员值。

枚举类型定义

enum [枚举名] {枚举元素列表};enum 枚举名 枚举变量

例如:

enum Weekday {sun,mon,tue,wed,thu,fri,sat};0 1 2 3 4 5 6enum Weekday workday,weekend;workday=mon;等价于workday=1;weekday=sat;等价于weekday=6;

枚举元素在定义后被当作常量处理,因此不能重新赋值。

每一个枚举元素都代表一个整数,枚举变量可以用来作判断和比较。

使用枚举变量

枚举变量完全可以用0123来代替,但是枚举变量的意义在于方便理解。

可以用简单的枚举元素列表,来表示某个值的全部情况。

既可以用作循环中的赋值和边界条件判断,也可以用在switch中,此时case变成了枚举成员(不加” ”).

for(workday=mon;workday<sat;workday++){//……}switch(workday){case mon:……case tue:……//……}

需要注意的是,枚举变量实际上还是整数,因此输出时不可以%s,只能用%d。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
扩展阅读