发布网友 发布时间:2022-03-27 14:02
共6个回答
热心网友 时间:2022-03-27 15:32
一、变量长度不同
结构体变量所占内存长度是各成员占的内存长度之和,每个成员分别占有其自己的内存单元。
共用体变量所占的内存长度等于最长的成员的长度。
二、占用空间不同
结构体是同时存在的,并一次占用一段连续的内存空间;
而共用体则是多个共用成员占用同一个开始的内存地址,同时他们只能存在一各,所以空间大小就是最大那个所需的空间,如果单从一个共用体来讲,我们是不知道里面存的是什么内容,需要根据程序上下文才能确定。
三、分配储存空间不同
结构体是由一系列具有相同类型或不同类型的数据构成的数据集合,简称结构。在C语言中,可以定义结构体类型,将多个相关的变量包装成为一个整体来使用。在结构体中的变量,可以是相同、部分相同,或完全不同的数据类型。
结构体类型的定义只是由用户构造了一个结构体,但定义结构体类型时系统并不为其分配存储空间。
参考资料来源:百度百科-c++共用体
参考资料来源:百度百科-结构体
热心网友 时间:2022-03-27 16:50
首先你说的很对 共同体的确占的内存要比结构体小热心网友 时间:2022-03-27 18:24
共用体是构造数据类型,也叫联合体热心网友 时间:2022-03-27 20:16
共用体的成员共用一块内存区,结构体的成员有个自独立的内存区。热心网友 时间:2022-03-27 22:24
结构体所占用的内存空间为其成员所需空间总和热心网友 时间:2022-03-28 00:48
补充一下:共用体的类型不同时,都是从同一地址开始的(是由低位向高位覆盖的)