全站数据
8 4 2 0 5 8 1

C里的共同体和结构体的区别

建筑互联网 | 简单学习,快乐成才!         
问题更新日期:2024-10-12 03:04:27

问题描述

C里的共同体和结构体的区别急求答案,帮忙回答下
精选答案
最佳答案

结构体(structure)是一种构造类型,它是由若干“成员”组成的。每一个成员可以是一个基本数据类型或者又是一个构造类型,而且每个成员的数据类型可以相同也可以不相同。

共同体(union)将几种不同的变量储存在同一内存单元中,也就是使用覆盖技术,几个变量互相覆盖,这种几个不同的变量共同占用一段内存的结构,可见二者最大的区别就是所占用的内存,结构体(structure)所占用的内存是分量内存之和,共同体(union)所占用的内存是等于最大的分量的内存。具体来说,结构体(structure)与共同体(union)主要有以下区别:1.结构体(structure)与共同体(union)都是由多个不同的数据类型成员组成,但在任何同一时刻,共同体(union)中只存放了一个被选中的成员,而结构体(structure)的所有成员都存在。

在结构体(structure)中,各成员都占有自己的内存空间,它们是同时存在的。一个结构体(structure)变量的总长度等于所有成员长度之和。

在共同体(union)中,所有成员不能同时占用它的内存空间,它们不能同时存在。共同体(union)变量的长度等于最长的成员的长度。

2.对于共同体(union)的不同成员赋值,将会对其它成员重写,原来成员的值就不存在了,而对于结构体(structure)的不同成员赋值是互不影响的。