用合适的 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
广告