C语言联合体,枚举详解

1. 前言

        前边我们已经了解了结构体在C语言当中是如何使用的,今天咱来一起聊一聊联合体与枚举在C语言当中又是如何运用的呢

2. 联合体的了解与运用

2.1 联合体的声明:

        相比于结构体来说,联合体最大的区别就在于它是联合体当中所有成员共用一块内存空间,所以联合体又称共用体,举个例子:

        比如,假设为这个联合体开辟了一个4个字节的空间,其中两个成员,分别对齐进行赋值,调试观察该成员在内存当中发生的改变

union S
{int a;char q;
}s;int main()
{s.a = 100;s.q = 'a';return 0;
}

理解:

2.1.2 联合体大小计算:

        在上我们了解到联合体中的成员是共用一块内存区域的,所以在我们计算其大小时,应当选择联合体中最大成员的大小作为联合体的大小,而又因为内存对齐的原因,联合体的大小需为联合体成员中,单个成员中最大类型的整数倍(如有不理解的地方可以去看结构体详解这篇文章喔)

举例:

union U
{char a[20];int a1;
};union U1
{short b[5];int b1;
};int main()
{printf("%zd\n", sizeof(union U));printf("%zd\n", sizeof(union U1));return 0;
}
//兄弟们不妨也来算算最终两个联合体的大小是多少

理解:

3. 枚举(enum)的了解与运用

3.1 枚举的声明:

举例:

enum E
{serect,box,sister
};

3.2 枚举的使用:

        枚举顾名思义就是穷举,所有可能,下边我们来一起了解一下枚举函数该如何去使用(enum内的成员,都是从整数0开始累加的,每个成员又代表着一个整形数字):

enum E
{serect,box,sister
};int main()
{enum E e1 = serect;enum E e2 = box;printf("%d\n", e1);printf("%d\n", e2);}//输出结果
0 1

再来看一段代码:

enum E
{serect,box = 245,sister
};int main()
{enum E e1 = serect;enum E e2 = box;enum E e3 = sister;printf("%d\n", e1);printf("%d\n", e2);printf("%d\n", e3);return 0;}
//它的输出结果又是什么呢?

题解:

3.3 为什么要用枚举,枚举的优势:

        关于为什么要使用枚举这一点,小博给兄弟们找了一些参考资料,希望可以帮助兄弟们理解的更加透彻:

(今日分享到此结束,如觉得对您有帮助,还请点赞三联支持一下呢,Thanks♪(・ω・)ノ)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/787681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

易语言控件绑定数据库

易语言是一门中文编程语言,由国人开发,虽然比较冷门,但是在有些场合却非常流行,比如自动化脚本,还有开发外挂。 在易语言中,只要控件的属性里有数据源的都可以与数据库的数据绑定,以下将演示易…

Linux:基本指令篇

文章目录 前言1.ls 指令2.pwd命令3.cd 指令4.touch指令5.mkdir指令(重要)6.rmdir指令 && rm 指令(重要)7.man指令(重要)8.cp指令(重要)9.mv指令(重要&#xff09…

通过Telnet访问网络设备

要通过 Telnet 访问网络设备,需要通过Console端口对网络设备进行基本配置,例如,IP地址、子网掩码、用户名和登录密码等。本实验以路由器为例,交换机远程管理只是接口名字不同而已,路由器用物理接口,交换机用…

mac mini m1芯片 Xcode 15.3 各种报错的问题

错误一: /Users/mac/Desktop/Test_project/mobile-ios/Test/Test-Bridging-Header.h:4:9 failed to emit precompiled header /Users/mac/Library/Developer/Xcode/DerivedData/App-apvcgkuclncgfqdlzqcoffyaexos/Build/Intermediates.noindex/PrecompiledHeaders/…

缓存和缓存的常用使用场景

想象一下,一家公司在芬兰 Google Cloud 数据中心的服务器上托管一个网站。对于欧洲用户来说,加载可能需要大约 100 毫秒,但对于墨西哥用户来说,加载需要 3-5 秒。幸运的是,有一些策略可以最大限度地减少远程用户的请求延迟。 这些策略称为缓存和内容交付网络 (CDN),它们是…

【星海随笔】Ubuntu22.04忘记密码

服务器篇: 有问题可留言。 第一步 远程console界面进入该设备 并重启该设备 如果看到这个界面情况 则点击右上角按钮 【发送 Ctrl+Alt+Delete】 调出grub启动菜单 NOTE:启动的后半段去点击这个按钮,前半段一直点会一直重启 如果是直连服务器,可以快速按下shift键。调出gru…

新能源微电网数据集

需要的同学私信联系,推荐关注上面图片右下角的订阅号平台 自取下载。 微电网(Micro-Grid,MG)由分布式电源(分布式光伏、分散式风电、燃气轮机、电化学储能、超级电容等)、用电负荷(重要、可调等…

3D怎么看模型内部结构---模大狮模型网

在3D建模和设计过程中,了解模型的内部结构是十分重要的。这不仅有助于审美和设计,还能够帮助我们更好地理解模型的构造和特性。模大狮将介绍一些方法和技巧,帮助您探索3D模型的内部结构。 一、使用切片工具 切片模型:通过切片工具…

手机销量分析案例

项目背景 某电商商城随着业务量的发展,积累了大量的用户手机销售订单数据。决策层希望能够通过对这些数据的分析了解更多的用户信息及用户的分布,从而可以指导下一年的市场营销方案以及更加精准的定位市场,进行广告投放。 数据说明 数据时…

等变GNN

非空集合 G G G上定义的二元运算如果满足某些性质,就构成了一个群。常见的群有: O ( n ) O(n) O(n): n n n维正交群,包含旋转和反演操作,反演可以理解为推理或者映射。 S O ( n ) SO(n) SO(n): n n n维特殊…

【学习笔记】java项目—苍穹外卖day04

文章目录 1. 新增套餐1.1 需求分析和设计1.2 代码实现1.2.1 DishController1.2.2 DishService1.2.3 DishServiceImpl1.2.4 DishMapper1.2.5 DishMapper.xml1.2.6 SetmealController1.2.7 SetmealService1.2.8 SetmealServiceImpl1.2.9 SetmealMapper1.2.10 SetmealMapper.xml1.…

Web攻击越发复杂,企业如何保护云上业

如今,电子政务、电子商务、网上银行、网上营业厅等依托Web应用,为广大用户提供灵活多样的服务。在这之中,流量攻击堪称是Web应用的最大敌人,黑客通过流量攻击获取利益、竞争对手雇佣黑客发起恶意攻击、不法分子通过流量攻击瘫痪目…

MySQL中使用distinct单、多字段去重方法

目录 一、distinct 1.1 只对一个字段查重 1.2多个字段去重 1.3针对null处理 1.4与distinctrow同义 二、聚合函数中使用distinct 三、CONCAT_WS函数 多个字段拼接去重是指将多个字段的值按照一定的规则进行拼接,并去除重复的拼接结果。这样可以生成唯一标识符…

【中大厂前端面试百问】这不迷死你?

写在前面 最近收到很多同行的抱怨,前端开发高级还行,对初中级最难过的不是面试过不去,而是“已读不回”,来自某聘的梗,确实是,初中级因为坑位较少,很多HR在专心招聘的时候都未必能让所有投简历…

TikTok账号为什么被封?如何防止被封?

多人在使用TikTok的过程中都会遇到一些问题,比如为什么TikTok没有浏览量?事实上,这很可能是因为你的账号已被禁止。但为什么它会被封呢?你怎样才能解决它? 一、TikTok账号为什么被封? 1、什么是 TikTok 影…

TikTok账号封号原因是什么?全面攻略

多人在使用TikTok的过程中都会遇到一些问题,比如为什么TikTok没有浏览量?事实上,这很可能是因为你的账号已被禁止。但为什么它会被封呢?你怎样才能解决它? 一、TikTok账号为什么被封? 1、什么是 TikTok 影…

数据结构与算法(2)顺序表的初始化、插入、打印、删除、查找元素——C语言版

目录 1.前言 2.头文件的定义 3.菜单栏的设置 4.顺序表的初始化 5.添加元素 6.打印元素 7.查找元素 8.删除元素 9.插入元素 10.主函数 11.完整的代码实现 1.前言 数据结构包括三个方面 逻辑结构存储结构运算 而线性表有两种典型的存储结构 顺序存储结构链式存储结构 具体关系可…

idea端口占用

报错:Verify the connector‘s configuration, identify and stop any process that‘s listening on port XXXX 翻译: 原因: 解决: 一、重启大法 二、手动关闭 启动spring项目是控制台报错,详细信息如下&#xff…

Photoshop 2024 Mac/win---图像处理的新纪元,解锁无限创意

Photoshop 2024是一款功能强大的图像处理软件,以其卓越的性能和广泛的应用领域,赢得了设计师、摄影师、图形艺术家等各类创意工作者的青睐。它提供了丰富的绘画和编辑工具,让用户能够轻松进行图片编辑、合成、校色、抠图等操作,实…

【0day】号卡sql注入

漏洞描述 号卡系统一键即可便捷快速的为您自己打造一个独立的属于你的号卡分销商城。此系统某接口存在SQL注入漏洞。 fofa语句 icon_hash"-795291075" 漏洞复现 构造payload nuclei验证 pocsuite3 验证 verify 验证 attack 验证 github poc总汇地址&#xff1a…