union的用法,并举例子
时间: 2023-07-29 22:12:04 浏览: 107
`union` 是一种特殊的数据类型,它允许在同一内存位置存储不同的数据类型。它的内存分配方式是以最大的数据类型为准,不同的成员共享同一块内存空间,因此只能同时存储其中的一个成员。
下面是一个 `union` 的示例:
```
union Item {
int i;
float f;
char c;
};
```
在这个示例中,`Item` 是一个 `union` 类型,它有三个成员:`i` 是一个整数,`f` 是一个浮点数,`c` 是一个字符。由于 `i`、`f` 和 `c` 共享同一块内存空间,因此只能同时存储其中的一个成员。例如,当你将一个整数赋值给 `i` 时,`f` 和 `c` 中的值将不再是有效值。
下面是一个使用 `union` 的示例:
```
#include <stdio.h>
union Item {
int i;
float f;
char c;
};
int main() {
union Item item;
item.i = 10;
printf("item.i = %d\n", item.i);
item.f = 3.14;
printf("item.f = %f\n", item.f);
printf("item.i = %d\n", item.i); //此时item.i的值被改变
item.c = 'a';
printf("item.c = %c\n", item.c);
printf("item.i = %d\n", item.i); //此时item.i的值又被改变
return 0;
}
```
在这个示例中,我们使用 `union Item` 定义了一个 `union` 类型。然后,我们创建了一个 `item` 变量,并分别将整数、浮点数和字符赋值给它的不同成员。可以看到,每次赋值都会改变 `item` 变量中的值。由于 `i`、`f` 和 `c` 共享同一块内存空间,因此每次赋值都会改变 `item.i` 的值。
阅读全文