使用c语言生成一段联合体初始化的代码案例
时间: 2024-10-07 16:01:57 浏览: 22
C语言不定长数组及初始化方法
3星 · 编辑精心推荐
在C语言中,联合体(union)允许数据成员共享同一块内存空间,可以根据需要存储其中任意一种类型的值。下面是一个联合体初始化的例子:
```c
#include <stdio.h>
// 定义一个联合体
typedef union {
int i; // 整型
float f; // 浮点型
char c[5]; // 字符数组,最多可以存放4个字符(因为最后一个元素需要存放结束标志)
} UnionType;
int main() {
UnionType u;
// 联合体初始化 - 存储整数
u.i = 100;
printf("联合体i的值: %d\n", u.i);
// 改变为浮点数
u.f = 3.14f;
printf("联合体f的值: %.2f\n", u.f);
// 再次改变为字符串,注意这里不会覆盖浮点数,会从i的位置开始存储字符
u.c[0] = 'H';
u.c[1] = 'e';
u.c[2] = 'l';
u.c[3] = 'l';
u.c[4] = '\0'; // 结束标志
printf("联合体c的值: %s\n", u.c);
return 0;
}
```
在这个例子中,我们创建了一个名为`UnionType`的联合体,然后分别初始化为整数、浮点数和字符串。需要注意的是,尽管我们改变了u的成员,但由于它们共享同一块内存,所以改变其中一个会影响其他成员。
阅读全文