共用体类型--c语言

这篇具有很好参考价值的文章主要介绍了共用体类型--c语言。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

共用体类型:

        共用体中所有的成员共用一段内存(所有成员的起始地址都是一样的)

格式:

union 共用体名
{
    成员列表;
};
注:
    1.成员列表定义该共用体的成员,成员定义的方式与普通变量的方式一样。
    2.成员列表必须用一对花括号括起。
    3.共用体名可以省略。

如:

union data
{
    int i;
    char ch[10];
    float s;
};
//定义了一个data的共用体类型,该类型有三个成员

 共用体变量的定义

        1.先定义类型,在定义变量

union data
{
    int i;
    char ch[10];
    float s;
};

union data a1;

        2.定义类型的同时,定义变量

union data
{
    int i;
    char ch[10];
    float s;
}a1;

        3.直接定义变量

union 
{
    int i;
    char ch[10];
    float s;
}a1;

        注:由于共用体类型的所有成员都共用同一段内存,所以共用体类型变量所占字节数等于该共用体类型中占用字节数最多的成员所占的字节数。sizeof(a1)>=10

共用体变量的引用:

        1.不能整体引用共用体变量,只能引用其他成员  引用的格式:共用体变量名.成员名

        2.同类型成员共享值

        3.在内存中整型数据的二进制数低8位占用前面一个字节,高8位占用后面一个字节。(高位放高地址,低位放低地址)

                如:整数255,在内存中存储的形式为:

                                11111111 00000000                                                                                                                   一个字符型数据占用一个字节,对于数组来说前面元素占用前面的字节。

        4.共用体变量之间可以相互赋值,赋值后两个变量应使用同一成员。

        5.共用体变量的地址与各成员的地址都相同。

        6.在定义共用体时,可以对其进行初始化,但只能有一个初值,且必须用花括号将初值括起。相当于给第一个成员赋值。

        7.共用体、结构体的成员均可以是共用体或结构体类型。

        8.不能用共用体类型变量作为函数参数

        9.计算共用体占用字符数文章来源地址https://www.toymoban.com/news/detail-820180.html

到了这里,关于共用体类型--c语言的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [学习笔记]解决因C#8.0的语言特性导致EFCore实体类型映射的错误

    今天下午在排查一个EF问题时,遇到了个很隐蔽的坑,特此记录。 使用ef执行Insert对象到某表时报错,此对象的Address为空: 检查数据库和迁移文件时发现Address这个字段被意外设置成 nullable: false ,而其它的字段却正常,按理来说对于string类型的属性,EFCore在codefirst模式下应该

    2024年02月05日
    浏览(36)
  • 自然语言处理学习笔记(五)————切分算法

    目录 1.切分算法 2.完全切分 3.正向最长匹配 4.逆向最长匹配 5.双向最长匹配 6.速度评测 1.切分算法         词典确定后,句子可能含有很多词典中的词语,他们有可能互相重叠,如何切分需要一些规则。常用规则为: 正向匹配算法、逆向匹配算法以及双向匹配算法 。但他们

    2024年02月14日
    浏览(57)
  • 【学习笔记】数据结构算法文档(类C语言)

    1.1.1 线性表的顺序存储表示 1.1.2 顺序表中基本操作的实现 1.1.2.1 初始化 1.1.2.2 取值 1.1.2.3 查找 1.1.2.4 插入 1.1.2.5 删除 1.1.2.6 计数 1.2.1 单链表的定义和表示 ★ 关于结点 1.2.2 单链表基本操作的实现 1.2.2.1 初始化 1.2.2.2 取值 1.2.2.3 查找 1.2.2.4 插入 1.2.2.5 删除 1.2.2.6 前插法创建单

    2024年02月07日
    浏览(44)
  • 【嵌入式——C语言】共用体

    定义 :共用体和结构体类似,也是一种构造类型的数据结构,在进行某些算法时,需要使用几种不同类型的变量存到同一段内存单元中,几个变量所使用空间相互重叠,这几个不同的变量共同占用一段内存的结构,被称作共用体类型结构。 共用体的大小是其占内存长度最大

    2024年01月22日
    浏览(47)
  • 【计算机二级考试C语言】C共用体

    共用体 是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,但是任何时候只能有一个成员带有值。共用体提供了一种使用相同的内存位置的有效方式。 为了定义共用体,您必须使用  union  语句,方式与定义结构类似

    2024年01月18日
    浏览(56)
  • C语言学习之共用体(union)的运用

    C语言中的共用体: 伪代码表示: 共用体的特点: 1.所有的成员是共享同一块内存空间的 2.所有成员的首地址是一样的; 3.大小取决于共用体中最大的成员; 补充知识: 共用体清0 :使用memset函数,头文件是 string.h ; memset函数格式: 测试代码: 运行结果: 实例要求: 使用

    2024年02月11日
    浏览(50)
  • 【C语言笔记】C语言数据类型转换

    C语言中有很多数据类型,这些数据类型在内存中的存储形式不一样,为了计算方便,编译器不得不将某一种数据类型转换成另一种数据类型。本篇将介绍C语言中各种数据类型转换的规则。 自动类型转换指的是编译器在编译时自动的、隐式的进行的类型转换。 将一种类型的数

    2024年02月02日
    浏览(90)
  • TypeScript 学习笔记(一):基本类型、交叉类型、联合类型、类型断言

    TS中实现对象属性必选、对象属性在开发过程中十分常见,前端在传参数时,有些参数比必传,有些是选传,我们可以定一个多个对象来实现传参,但是这让代码变得冗余。我们可以通过TS定义数据类型来实现。 TypeScript中文网 1. 数组 2. 布尔 3. 数值 当我们给num赋值为123但没有

    2024年02月15日
    浏览(45)
  • 共用体与枚举法,链表的学习

    结构体注意事项: 1.结构体类型可以定义在main函数里面,但是此时的作用域就被限定在该函数中 2.结构体的的的定义的形式:a.先定义类型,后定义变量-----struct stu s    b.定义类型的同时,定义了变量:struct stu {......}s;    c.省略了结构体名字(只用一次的时候可以这样写)

    2024年02月22日
    浏览(36)
  • TypeScript 学习笔记(六):索引签名类型、映射类型

    keyof 可以用于获取某种类型的所有键,其返回类型是联合类型。 keyof 与 Object.keys 略有相似,只不过 keyof 取 interface 的键 通过例子可以看到,这里的keyof Info其实相当于\\\"name\\\" | “age”。通过和泛型结合使用,TS 就可以检查使用了动态属性名的代码: 接口 基本数据类型 类 如果

    2024年02月17日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包