union
时间: 2023-06-28 22:08:46 浏览: 52
在 C 语言中,union 是一种特殊类型的数据结构,它允许在同一内存位置存储不同的数据类型。union 中的所有成员共享同一内存空间,因此 union 的大小等于其最大成员的大小。
union 的语法如下:
```c
union [union tag] {
member definition;
member definition;
...
} [one or more union variables];
```
其中,union tag 是可选的,member definition 包括成员类型和成员名称,one or more union variables 表示定义一个或多个 union 变量。
使用 union 变量时,只能访问其中的一个成员,因为它们都共享同一块内存空间。例如:
```c
union myUnion {
int i;
float f;
char str[20];
};
int main() {
union myUnion u;
u.i = 10;
printf("%d\n", u.i); // 输出 10
u.f = 3.14;
printf("%f\n", u.f); // 输出 3.140000
strcpy(u.str, "Hello");
printf("%s\n", u.str); // 输出 Hello
return 0;
}
```
在上面的例子中,我们定义了一个包含 int、float 和 char 数组成员的 union myUnion。我们可以依次访问这些成员变量,并且它们都存储在同一内存位置。