联合体(C语言)

news2024/11/24 12:47:37

小伙伴们又来学习知识啦~,今天我要给大家介绍一下联合体的使用,话不多说,我们开始今天的正题吧!
在这里插入图片描述

联合体的介绍
C语言的联合体(union)是一种特殊的数据类型,它可以在同一内存空间中存储不同的数据类型。与结构体类似,联合体也可以定义多个成员,但是这些成员会共享同一块内存空间。

联合体的定义形式与结构体类似,使用关键字union,后面跟着联合体的名称。与结构体不同的是,联合体的成员在内存中共享同一块空间。

使用
下面我定义一个联合体来给大家举个例子。

union myUnion {
    int i;
    char c;
    char arr[4];
};

这时定义联合体的方法,与结构体的定义类似,但是刚才介绍了,他们会共用一块内存空间,这是什么意思呢?我再来以我刚才定义的这个联合体来举例子。
比如我给联合体中的i 赋值为1,那么c的值也为1(ASCII值里的1),arr[0]里也是1,因为共用了同一块内存空间,如果我把c赋值为2,此时i就不再是1而是2。
但是需要注意的是i占了四个字节而c只占了1个字节,给c赋值并不会改变i前三个字节的内容。

联合体的使用方式与结构体类似,可以通过成员名来访问和操作联合体的成员。联合体的所有成员中只能有一个成员被赋值和访问,否则会覆盖已经存在的值。

优点
联合体主要用于节省内存空间,特别是在某些情况下只需要同时存储一种数据类型的时候。同时,联合体也可以用于实现一些特殊的功能,例如将一个整型数的每个字节分别存储到四个字符中。

结尾
本期关于联合体的分享就到这里,如果觉得博主讲得不错,千万不要忘记给博主一个关注,点赞,收藏哦~,我们下期再见!

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

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

相关文章

龙迅LT86102UXE HDMI一分二HDMI,支持音频剥离,支持4K60HZ

描述: 龙迅 LT86102UXE HDMI2.0 分路器具有符合 HDMI2.0/1.4 规范的 1:2 分路器、最大 6Gbps 高速数据速率、自适应均衡 RX 输入和预加重 TX 输出(用于支持长电缆应用)、内部 TX 通道交换以实现灵活的 PCB 布线。 LT86102UXE HDM…

机器学习之线性回归(Linear Regression)附代码

概念 线性回归(Linear Regression)是机器学习中的一种基本的监督学习算法,用于建立输入变量(特征)与输出变量(目标)之间的线性关系。它假设输入变量与输出变量之间存在线性关系,并试图找到最佳拟合线来描述这种关系。 在简单线性回归中,只涉及两个变量:一个是自变量…

Ubuntu 常用命令之 passwd 命令用法介绍

📑Linux/Ubuntu 常用命令归类整理 在Ubuntu系统中,passwd命令用于更改用户的密码。系统管理员可以使用此命令更改任何用户的密码,而普通用户只能更改自己的密码。 passwd命令的参数如下 -l, --lock:锁定密码,使账户…

Apache+PHP环境配置 手动配置

准备工作,在G盘新建一个WAMP目录 1.获取Apache 打开下载地址Apache VS17 binaries and modules download,下载 httpd-2.4.58-win64-VS17.zip 将下载好的httpd-2.4.58-win64-VS17.zip拷贝到G:\WAMP目录下并解压到当前目录,得到Apache24目录 …

石墨匣钵,预计到2025年将达到3.973亿美元

石墨匣钵是陶瓷和耐火材料工业用于烧制和烧结各种材料的高温容器。在陶瓷产品需求增加和耐火材料行业增长的推动下,全球石墨匣钵市场在过去几年出现了显着增长。2020 年全球石墨匣钵市场价值为 3.039 亿美元,预计到 2025 年将达到 3.973 亿美元&#xff…

找不到x3daudio1_7.dll文件的解决方法分享

今天我想和大家分享的是关于“找不到X3DAudio1_7.dll无法继续执行代码问题”的解决方法,以及X3DAudio1_7.dll丢失是什么意思,它的作用是什么,以及丢失对计算机有什么影响。 首先,我们来解释一下X3DAudio1_7.dll是什么。X3DAudio1…

Python Hook钩子函数详解

更多资料获取 📚 个人网站:ipengtao.com 在Python编程中,Hook钩子函数是一种重要的编程机制,允许程序在运行时的特定点执行自定义代码,以修改或扩展程序的行为。本文将深入介绍Python中Hook钩子函数的基本概念、使用场…

Axure RP 8 for Mac/win中文版:打造完美交互式原型设计体验

Axure RP 8,一款引领潮流的交互式原型设计工具,为设计师提供了无限的可能性,让他们能够创造出逼真的原型,从而更好地展示和测试他们的设计。 Axure RP 8拥有丰富的功能和工具,让设计师可以轻松地创建出复杂的交互式原…

程序员的50大JVM面试问题及答案

文章目录 1.JDK、JRE、JVM关系?2.启动程序如何查看加载了哪些类,以及加载顺序?3. class字节码文件10个主要组成部分?4.画一下jvm内存结构图?5.程序计数器6.Java虚拟机栈7.本地方法栈8.Java堆9.方法区10.运行时常量池?…

DDPM推导笔记

各位佬看文章之前,可以先去看看这个视频,并给这位up主点赞投币,这位佬讲解的太好了:大白话AI 1.前置知识的学习 1.1 正态分布特性 ​ (1)正态分布的概率密度函数 f ( x ) 1 2 π σ e − ( x − μ ) …

day38 1220

作业1&#xff1a;select客户端 1 #include <myhead.h>2 #define SERPORT 88883 #define SERIP "192.168.125.159"4 5 #define CLIPORT 66666 #define CLIIP "192.168.125.159"7 8 int main(int argc, const char *argv[])9 {10 int ret -1;11 …

uni-app的初使用(附源码学习)

uni-app代码编写&#xff0c;基本语言包括js、vue、css。以及ts、scss等css预编译器。 新建项目等基础指路&#xff1a; 关于uni-app的下载及使用-CSDN博客 1.vue文件 由三个一级节点组成&#xff0c;分别是template、script、style <template> </template><…

机器学习 | 密度聚类和层次聚类

密度聚类和层次聚类 密度聚类 背景知识 如果 S 中任两点的连线内的点都在集合 S 内&#xff0c;那么集合 S称为凸集。反之&#xff0c;为非凸集。 DBSCAN 算法介绍 与划分和层次聚类方法不同&#xff0c;DBSCAN(Density-Based Spatial Clustering of Applications with Noi…

Jmeter插件技术:性能测试中服务端资源监控

过程中我们需要不断的监测服务端资源的使用情况&#xff0c;例如CPU、内存、I/O等。 Jmeter的插件技术可以很好的实时监控到服务器资源的运行情况&#xff0c;并以图形化的方式展示出来&#xff0c;非常方便我们性能测试分析。 操作步骤&#xff1a; 1、安装插件管理器 插件…

用最通俗的语言讲解 TCP “三次握手,四次挥手”

目录 一. 前言 二. TCP 报文的头部结构 三. 三次握手 3.1. 三次握手过程 3.2. 为什么要三次握手 四. 四次挥手 4.1. 四次挥手过程 4.2. 为什么要四次挥手 五. 大白话说 5.1. 大白话说三次握手 5.2. 大白话说四次挥手 六. 总结 一. 前言 TCP 是一种面向连接的、可靠…

Ebullient开发文档之OTA升级(从TF中升级简洁明了)

一. 简介 这一篇将给大家介绍如何进行OTA升级(esp32s3), 为了简单方便&#xff0c;可操作性强&#xff0c;这次是从TF中读取固件来进行跟新&#xff0c;本来想看看网上有没有参考的&#xff0c;有是有&#xff0c;但绝大多数都是基于官方的例程&#xff0c;甚至贴出来的源码和…

Spring MVC框架支持RESTful,设计URL时可以使用{自定义名称}的占位符@Get(“/{id:[0-9]+}/delete“)

背景&#xff1a;在开发实践中&#xff0c;如果没有明确的规定URL&#xff0c;可以参考&#xff1a; 传统接口 获取数据列表,固定接口路径&#xff1a;/数据类型的复数 例如&#xff1a;/albums/select RESTful接口 - 根据ID获取某条数据&#xff1a;/数据类型的复数/{id} - 例…

mysql,mysqld,数据库的概念理解,为什么要有数据库,主流数据库,mysql架构介绍,存储引擎介绍,sql语句的分类,查看存储引擎(\G)

目录 概念理解 mysql 狭义 广义 CS模式 mysqld 守护进程 (daemon) 数据库服务 数据库 一般 广义上 数据库 为什么要有数据库 主流数据库​​​​​​​ mysql架构 第一层 -- 链接池 第二层 -- 翻译 第三层 -- 存储引擎​​​​​​​ 存储引擎介绍 总结 …

ansible的脚本—playbook剧本

目录 目录 一、playbook 1、简介 2、playbook组成部分&#xff1a; 3、如何编写Playbook&#xff1f; 4、语句的横向/纵向写法 二、playbook实例&#xff1a; 1、playbook模版&#xff1a; 2、playbook的条件判断&#xff1a; 3、playbook中的循环&#xff1a; 4、循…

【已解决】taos时序数据库3.0版本,怎么按照时间分组?

taos数据库中按照时间分组&#xff0c;在2.4版本时候可以直接使用INTERVAL(time_unit)来查询。例如 前面可以直接添加_ts的。但是在3.0版本之后&#xff0c;如果直接使用的话&#xff0c;只会返回count&#xff1a; 没有前面的时间。那么在3.0版本时候&#xff0c;怎么修改呢&a…