用合适的 C 语言示例说明结构体和联合体的区别


以下是 C 语言中结构体和联合体的区别:

序号结构体联合体
1定义
结构体是将不同数据项组合在一起,并使用一个名称进行分组的异构数据集合。
定义
联合体是一个内存位置,由多个不同数据类型的变量共享。
2语法:
struct tagname{
   datatype member1;
   datatype member2;
   ----
   ----
   ----
};
语法:
union tagname{
   datatype member1;
   datatype member2;
   ----
   ----
   ----
};
3例如:
struct sample{
   int a;
   float b;
   char c;
};
例如:
union sample{
   int a;
   float b;
   char c;
};
4**关键字** - struct**关键字** - union
5内存分配内存分配
6
7分配的内存是结构体中所有数据类型大小的总和(此处为 7 字节)
分配的内存是联合体中所有数据类型中最大的大小(此处为 4 字节)
8为结构体的所有成员分别分配内存
在任何特定时刻,只有一个成员驻留在内存中

示例

以下是结构体的 C 程序:

#include<stdio.h>
struct size{
   double a;
   int b;
   char c;
   float d;
};
int main(){
   printf("%ld",sizeof( stuct size));
}

输出

执行上述程序时,会产生以下结果:

24

示例

以下是联合体的 C 程序:

#include<stdio.h>
union size{
   double a;
   int b;
   char c;
   float d;
}
Int main(){
   Printf("ld",sizeof(union size));
}

输出

执行上述程序时,会产生以下结果:

8

更新于: 2021-03-09

1K+ 浏览量

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告