C语言学习10:共用体

张建 lol

共用体

共用体 是一种特殊的数据类型,允许您在 相同的内存位置存储不同的数据类型

定义共用体

必须用 union 语句,方式与结构体类型。

1
2
3
4
5
union MyData{
int i;
float j;
char k[5];
}data;

当上面的代码被 编译和运行时,产生的结果

1
2
内存占用:8
Program ended with exit code: 0

说明:共用体占用的内存应足够存储共用体中最大的成员,因为内存对齐,4的整数倍=8

访问共用体

我们使用 成员访问运算符(.)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main(int argc, const char * argv[]) {

union MyData data;
printf("内存占用:%lu\n",sizeof(data));
data.i = 1;
data.j = 3.14;
strcpy(data.k, "ZJ");

printf("i:%d\n",data.i);
printf("j:%f\n",data.j);
printf("k:%s\n",data.k);

return 0;
}

当上面的代码编译和运行是,产生的结果:

1
2
3
4
5
内存占用:8
i:1073760858
j:2.004538
k:ZJ
Program ended with exit code: 0
  • Post title:C语言学习10:共用体
  • Post author:张建
  • Create time:2023-02-15 00:13:03
  • Post link:https://redefine.ohevan.com/2023/02/15/C学习/C语言学习10:共用体/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
On this page
C语言学习10:共用体