C语言难点专题——enum, struct 和 Union

本文介绍了C语言中几种常用的数据结构,包括枚举(enum)、结构体(struct)和联合体(union)的基本使用方法及注意事项。对于每种数据结构都提供了具体的示例代码,并解释了它们的特点和应用场景。

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

C语言常用的几个数据结构, 做一个小总结, 方便查阅:

一: enum

enum没有任何神奇的地方,仅仅是让某些整数值变得有意义, 比如说, 电源开,用0表示,电源关,用1表示,

那么我们可以定义一个变量open, 和close, 表示电源的开和关。

void testEnum() { enum MyEnum{first = 1, second, third}; enum MyEnum typeA = 2;//枚举值,枚举范围中的一 int N = typeA; switch(typeA) { case first: printf("当前取值为: %d", N); break; case second: printf("当前取值为: %d", N); break; case third: printf("当前取值为: %d", N); break; } }

在我看来,枚举值应该可以有多个值可选,比如typeA = sencond, third两个值,但似乎暂时没有看到有人这样用,

需要再斟酌一下这个问题。

从枚举值引用的关系可以看出,enum列举出的任何变量,都不允许重复定义:

enum MyEnum{first = 1, second, third}; enum MyEnumA{first = 1, second, third}; //上面引用了first,后面允许再出现类似的枚举定义。

二: struct

  • 声明了一个abc的结构。

struct abc{

int score;

};

  • 定义结构(需要带上struct):

struct abc a;//实质上是声明 + 初始化

初始化一个结构:

struct abc a = {14};

a = {10}; //wrong 注意不能被两次初始化

  • 当const修饰时:

const struct abc a;

a.score = 10; //不容许再次赋值

三: union

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值