联合,枚举和类型别名

本文介绍了联合类型、枚举类型和类型别名的概念。联合类型允许存储多种类型之一,每次只能存储其中一个。枚举用于创建可取值列表,限制变量的取值并可用作switch语句的case标签。类型别名则通过typedef为现有类型创建新的名称,如intPointer。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

联合

联合与结构有很多相似之处,联合也可以容纳多种不同类型的值,但是它每次只能存储这些值中的一个。

union mima 
{    unsigned long birthday;    
     unsigned short ssn;    
     char* pet;
 }  

定义了这个联合类型之后,就可以像下面这样创建一个该类型的变量了:    mima mima_1;  
再接下来,我们可以像对结构成员进行赋值那样对联合里的成员进行赋值,使用同样的语法:    mima_1.birthday=19881301;  
上边这条语句是将值19881301存入mima_1联合的birthday里边。
如果我们再执行下边语句:    mima_1.pet=“Chaozai”;  
这个联合将把“Chaozai"存入mima_1联合的pet 成员,并丢弃birthday成员里的值。

枚举

枚举(enum)类型用来创建一个可取值列表:enum weekdays{Monday,Tuesday,Wednesday,Thursday,Friday};//不需要引号  
  定义一个枚举类型之后,我们就可以像下面这样创建该类型的变量:    weekdays today;  
然后我们像下边的方式对他进行赋值:    
today Thursday;
注意,我们这里不需要使用引号,因为枚举值不是字符串。

编译器会按照各个枚举值在定义时出现的先后顺序把它们与0~ n-1的整数(n是枚举值总个数)分别关联起来。  
使用枚举类型好处有两个:    
(1)它们对变量的可取值加以限制;    
(2)它们可以用做 switch条件语句的case标器。(因为字符串是不能作为标号用的)

类型别名

最后我们来介绍Typedef保留字,使用它可以为一个类型定义创建一个别名。  
  例如,我们不喜欢使用in来创建指针,可以像下边这样定义一个类型别名:   
   typedef int
intPointer;  
在此之后,我们就可以像下面这样来定义整型指针了:   intPointer myPointer;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值