共用体,枚举型

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 枚举名 { 

    标识符[=整形常数],

    标识符[=整形常数],

          ...

    标识符[=整形常数],}

例如,如下代码声明了一个举枚类型weekday:

enum weekday{mon, tue,wed, thu,fri,sat,sum};

随后,我们就可以用这个举枚类型来定义变量,如:

enum weekday workday,weekend;

C语言也允许在声明枚举类型同时定义枚举变量,如:

enum weekday{mon, tue,wed, thu,fri,sat,sum} workday,weekend;

这样变量workday,weekend就具有weekday举枚类型,其取值只能是mon, tue,wed, thu,fri,sat,sum

这几个值。

2)赋初值

在给枚举常量赋初值时,如果给其中任何一个枚举常量赋初值,则后面的枚举常量将按自然数的规则依次赋初值,例如:

enum weekday{ sun,mon,tue,wed=6,thu,fri,sat };

上面的例子只给枚举常量wed赋了初值,在这种情况下,每个枚举常量的初值分别如下:sun的值为0mon的值为1tue的值为2wed的值为6thu的值为7fri值为8sat值为9

注意:

1 枚举中每个成员(标识符)结束符是“,”,不是“;”,最后一个成员可省略“,”。

2 初始化时可以赋负数,以后的枚举元素一次加1.

3 枚举变量只能取枚举说明结构中的某个枚举元素。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值