C笔记系列五:结构体、联合体、枚举

本文详细介绍了C语言中的结构体(struct)与联合体(union)的概念及使用方法,包括它们的定义、实例化及初始化过程。此外,还探讨了枚举(enum)类型的定义与应用,并对比了结构体与联合体在内存分配上的不同。

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

struct

struct 结构体名 {  // 结构体定义
    ...
};

struct 结构体名 变量名;  // 结构体实例化

struct {  // 匿名结构体
    ...
} 变量名;

struct employee {  // 结构体初始化
    char name[32];
    int age;
] e1 = {"Zheng wei", 12};

struct employee el = {"Zheng wei", 12};  // 结构体初始化

union

union 联合体名 {...};  // 定义
union 联合体名 变量名;  // 实例化

联合体与结构体最重要的区别在于其存储空间的分配方式不同。联合体是把各个成员放在同一内存区域中,尽管各个数据成员占用字节数不相同,但起始地址都一样,它用“覆盖”技术,使多个变量互相覆盖。因此联合体变量所占用内存长度是其最长数据成员的长度。

enum

enum 枚举名 {枚举元素列表}; // 定义

在枚举元素列表中以此列出该类型中所有的元素,即枚举常量。若在定义中没给出这些元素的值,则这些元素依次被自动赋值为0,1,2,…。如:enum Color {red, green, black, yellow, blue, white};定义了枚举类型Color,其中red=0,green=1,...,white=5。若给其中某个元素赋值为N,则被赋值元素及其后面元素被赋值为N+i,i为对应元素在被赋值元素后的相对位置。如:enum Color {red, green, black = 0, yellow, blue, white};red=0,green=1,black=0,yellow=1,blue=2,white=3
注意,枚举元素本身是常量,不可在程序中再对其赋值,且每个枚举元素都是一个确定的整型数值。

enum Color {red, yellow, black}; // 定义
enum Color a, b;  // 实例化
a = red;  // 正确
a = 0;    // 错误
a = (enum Color)0; // 正确
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值