用合适的 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
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP.jpg)
