14、C 语言联合体和枚举知识点总结

联合体和枚举的基本概念、语法、初始化、引用方式及实际应用等方面

一、联合体(共用体)

1. 基本概念与特性

  • 定义:联合体(union)是一种自定义数据类型,其所有成员共用同一块内存空间,同一时刻只有一个成员有效。
  • 与结构体的本质区别:结构体成员各自占用独立内存,联合体成员共享内存。
  • 核心特性
    • 联合体的尺寸等于其最大成员的尺寸(需满足地址对齐)。
    • 给一个成员赋值会覆盖其他成员的值(内存共享导致)。
    • 成员间呈 “互斥” 关系,某一时刻仅能使用一个成员。

2. 定义与语法

union 联合体标签 {

    数据类型 成员1;

    数据类型 成员2;

    // ... 更多成员

};

  • 联合体标签:用于区分不同联合体(可省略,省略后无法通过标签定义变量)。
  • 成员:可为任意数据类型(基本类型、数组、指针等)。

示例

// 定义一个包含多种数据类型的联合体

union data {

    char c;    // 1字节

    int i;     // 4字节

    double d;  // 8字节

};

3. 初始化与引用

初始化
  • 只能初始化一个成员(多个初始化会被覆盖,编译器会警告)。
  • 支持普通初始化和指定成员初始化,最终仅最后赋值的成员有效。

示例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

長琹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值