C 枚举 联合

枚举

  • 1. 概念
    • 用来创建新数据类型的工具
  • 2. 声明方法
    • 使用enum关键字
    • 包含多个名称
enum 枚举名称 {名称1, 名称2, ....};
  • 3. 使用方法

    • 每个枚举名称都可以作为整数使用

傻逼视频说了个几把,我也不知道我写的这是啥, 倒不如直接看别人写的【C语言】联合与枚举类型

#include <stdio.h>
int main() {
    //enum season 合起来可以做类型名称 来声明 枚举变量
    //枚举变量在内存里和整数类型变量一样,就是一个 整数类型存储区
    //所以通常并不用声明枚举类型变量,所以声明枚举类型时会省略枚举类型本身的名称
    //想使用枚举类型的时候,声明一个整数类型变量,然后把它当做枚举类型变量就行

    // enum season {CHUN, XIA, QIU, DONG};
    enum {CHUN, XIA, QIU, DONG};
    //计算机为每个名称分配了一个对应的整数,在程序里面可以把这些名称当做整数来使用
    //当声明了一个枚举类型变量的时候,这个变量也只能存放这些名称对应的整数
    //这些名称叫做枚举值,每一个都可以当整数来用
    //计算机给第一个名称 CHUN 分配的是 0, 第三个名称QIU 是 2
    //如果声明时, XIA = 5 , 那么 QIU 就是6
    printf("QIU是%d\n", QIU);
    return 0;
}

联合

  • 1. 概念
    • 用来创建新数据类型的工具
  • 2. 声明方法
    • 使用union关键字
    • 和结构体声明最大的区别就是关键字不同
union 联合名称 {
成员变量名称
}联合名称
  • 3. 特点
    • 所有成员变量的开始地址都一样
  • 4. 使用方法
    • 使用同一块内存记录不同数据(比如两组不可能同时存在的数据),以节省内存
#include <stdio.h>

//结构体中有多种不同类型的成员变量,每个成员变量在内存里对应的字节都是不一样的
//但是联合的成员变量在内存中开始的地址都是一样的,是互相重叠的。
//联合存储区的大小是最大成员变量存储区大小
typedef union tmp {
    int val;
    float fval;
} utmp;

int main() {
    utmp tmp1 = {0};
    printf("&(tmp1.val)是%p\n", &(tmp1.val));
    printf("&(tmp1.fval)是%p\n", &(tmp1.fval));
    return 0;
}

/*
output:
&(tmp1.val)是0x7ffcef92df00
&(tmp1.fval)是0x7ffcef92df00
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值