共用体,枚举型
2015-12-08 22:49
567 查看
1、共用体
共用体由若干个数据类型组合而成。和结构体型不同的是,共用体数据中所有成员都占用相同的内存单元,设置这种数据类型的主要目的就是节省内存空间。
union 共用体名
{
数据类型1 成员名1;
数据类型2 成员名2;
…
数据类型n 成员名n;
}共用体变量名;
例如
union data
{
int i;
char ch;
float f;
}a,b,c;
也可以将类型声明与变量定义分开:
union
{
int i;
char ch;
float f;
}a,b,c;
当然,也可以直接定义共用体变量:
union data
{
int i;
char ch;
float f;
}a,b,c;
注意:
(1)同一内段可以用来存放几种不同类型的成员,但每一瞬时只有一个成员起作用。
(2)共用体变量中前一次起作用的成员在存入新的成员后原有的成员失去意义。
(3)共用体变量和它的所有成员的地址都是同一地址。
(4)不同对共用体变量赋值,也不能在定义共用体变量时对其初始化。
2、枚举
1)枚举型定义的一般语法形式为:
enum 枚举名 {
标识符[=整形常数],
[b] 标识符[=整形常数],[/b]
...
[b] 标识符[=整形常数],}[/b]
例如,如下代码声明了一个举枚类型weekday:
enum [b]weekday{mon,
tue,wed, thu,fri,sat,sum};[/b]
[b]随后,我们就可以用这个举枚类型来定义变量,如:[/b]
[b][b]enum weekday
workday,weekend;
[/b][/b]
[b][b]C语言也允许在声明枚举类型同时定义枚举变量,如:[/b][/b]
enum weekday[b]{mon,
tue,wed, thu,fri,sat,sum} [b]workday,weekend;[/b][/b]
这样变量[b]workday,weekend就具有weekday举枚类型,其取值只能是[b]mon,
tue,wed, thu,fri,sat,sum[/b][/b]
这几个值。
(2)赋初值
在给枚举常量赋初值时,如果给其中任何一个枚举常量赋初值,则后面的枚举常量将按自然数的规则依次赋初值,例如:
enum weekday{ sun,mon,tue,wed=6,thu,fri,sat };
上面的例子只给枚举常量wed赋了初值,在这种情况下,每个枚举常量的初值分别如下:sun的值为0,mon的值为1,tue的值为2,wed的值为6,thu的值为7,fri值为8,sat值为9。
注意:
1 枚举中每个成员(标识符)结束符是“,”,不是“;”,最后一个成员可省略“,”。
2 初始化时可以赋负数,以后的枚举元素一次加1.
3 枚举变量只能取枚举说明结构中的某个枚举元素。
共用体由若干个数据类型组合而成。和结构体型不同的是,共用体数据中所有成员都占用相同的内存单元,设置这种数据类型的主要目的就是节省内存空间。
union 共用体名
{
数据类型1 成员名1;
数据类型2 成员名2;
…
数据类型n 成员名n;
}共用体变量名;
例如
union data
{
int i;
char ch;
float f;
}a,b,c;
也可以将类型声明与变量定义分开:
union
{
int i;
char ch;
float f;
}a,b,c;
当然,也可以直接定义共用体变量:
union data
{
int i;
char ch;
float f;
}a,b,c;
注意:
(1)同一内段可以用来存放几种不同类型的成员,但每一瞬时只有一个成员起作用。
(2)共用体变量中前一次起作用的成员在存入新的成员后原有的成员失去意义。
(3)共用体变量和它的所有成员的地址都是同一地址。
(4)不同对共用体变量赋值,也不能在定义共用体变量时对其初始化。
2、枚举
1)枚举型定义的一般语法形式为:
enum 枚举名 {
标识符[=整形常数],
[b] 标识符[=整形常数],[/b]
...
[b] 标识符[=整形常数],}[/b]
例如,如下代码声明了一个举枚类型weekday:
enum [b]weekday{mon,
tue,wed, thu,fri,sat,sum};[/b]
[b]随后,我们就可以用这个举枚类型来定义变量,如:[/b]
[b][b]enum weekday
workday,weekend;
[/b][/b]
[b][b]C语言也允许在声明枚举类型同时定义枚举变量,如:[/b][/b]
enum weekday[b]{mon,
tue,wed, thu,fri,sat,sum} [b]workday,weekend;[/b][/b]
这样变量[b]workday,weekend就具有weekday举枚类型,其取值只能是[b]mon,
tue,wed, thu,fri,sat,sum[/b][/b]
这几个值。
(2)赋初值
在给枚举常量赋初值时,如果给其中任何一个枚举常量赋初值,则后面的枚举常量将按自然数的规则依次赋初值,例如:
enum weekday{ sun,mon,tue,wed=6,thu,fri,sat };
上面的例子只给枚举常量wed赋了初值,在这种情况下,每个枚举常量的初值分别如下:sun的值为0,mon的值为1,tue的值为2,wed的值为6,thu的值为7,fri值为8,sat值为9。
注意:
1 枚举中每个成员(标识符)结束符是“,”,不是“;”,最后一个成员可省略“,”。
2 初始化时可以赋负数,以后的枚举元素一次加1.
3 枚举变量只能取枚举说明结构中的某个枚举元素。
相关文章推荐
- 7、osg中响应键盘鼠标事件以及鼠标和键盘编码表
- 在线图标字体生成器
- 懒加载lazyload
- Android 响应notification事件
- js控制href内容的连接内容的变化
- js动态控制table的tr,td增加及删除
- 一个例子帮助理解正则表达式
- ios第一课 关于类的声明和实现
- postgreSQL角色权限控制
- Winwods NLB 单播和多播区别
- Java中常用的集合类和Map详解
- 调用拷贝构造函数的时机
- 设置外键约束的SQL语句:
- 使用CompletionService结合ExecutorService批处理任务
- Adb not responding
- mfc 直接操作ie浏览器自动填写表单实例
- 在View and Data API中更改指定元素的颜色
- ostringstream的用法
- postgresQL备份数据库shell
- C++Primer学习:模板特例化