• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

结构体struct和联合体union的区别

开心撸代码 2020-03-15 浏览量:579
结构体struct和联合体union的区别?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 其实就是如何解读内存连续区域数据的不同

    结构体是一种固定的解读,

    联合体则同时可以存在2种不同的解读


    注意联合体的解读是使用时决定,即你可以按A方式存入数据,再按B方式解读(虽然这可能没有意义,甚至获取到的数据是错误的,但仅仅从编程上来说是不算错误的)

    • 发布于 2020-03-16
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:7
  • struct和union都是由多个不同的数据类型成员组成 但在任何同一时刻 union中只存放了一个被选中的成员 而struct的所有成员都存在。在struct中,各成员都占有自己的内存空间,它们是同时存在的。一个struct变量的总长度等于所有成员长度之和。在Union中,所有成员不能同时占用它的内存空间,它们不能同时存在。Union变量的长度等于最长的成员的长度;结构和联合都是由多个不同的数据类型成员组成但在任何同一时刻联合中只存放了一个被选中的成员(所有成员共用一块地址空间)而结构的所有成员都存在(不同成员的存放地址不同)。对于联合的不同成员赋值将会对其它成员重写原来成员的值就不存在了而对于结构的不同成员赋值是互不影响的。

    • 发布于2020-03-15
    • 举报
    • 评论 0
    • 0
    • 0

  • union是共同体,里面的变量类型按照最大的存放,比如有100个变量,实际内存使用只用了最大一个变量类型的长度,比较省空间,不像结构体每个变量都要分配空间,
    • 发布于2020-03-16
    • 举报
    • 评论 0
    • 0
    • 0

  • struct,结构体里面的每一组变量是独立的内存,相当于一个萝卜一个坑儿,各组变量之间互不影响。

    union,共用体里面的各组变量共享内存,就是公用一个坑,修改其中一组数据,其他组的数据也跟着变。

    • 发布于2020-03-16
    • 举报
    • 评论 0
    • 0
    • 0

  • struct 主要最大的区别是在内存上分部的。  struct 每个变量是独立的。 而UNION 是共用同一块内存  分配最大变量空间。
    • 发布于2020-03-16
    • 举报
    • 评论 0
    • 0
    • 0

  • 占用的内存空间是不一样的,union是共享内存空间,struct是分另占用各自成员的空间
    • 发布于2020-03-16
    • 举报
    • 评论 0
    • 0
    • 0

  • struct中的每个变量占用一个空间,而union的是共用一个空间,而且是空间最大的那个变量的空间

    • 发布于2020-03-16
    • 举报
    • 评论 0
    • 0
    • 0

  • union变量共享内存;

    struct每个变量都是各自的内存


    • 发布于2020-03-18
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

结构体struct和联合体union的区别