利用C语言集合Union
时间: 2023-05-28 20:04:44 浏览: 77
C语言中的集合Union是一种特殊的数据类型,它可以存储不同类型的数据,但只能同时存储其中的一种类型。下面是一个简单的例子:
```c
#include <stdio.h>
union Data {
int i;
float f;
char str[20];
};
int main( ) {
union Data data;
printf( "Memory size occupied by data : %d\n", sizeof(data));
data.i = 10;
printf( "data.i : %d\n", data.i);
data.f = 220.5;
printf( "data.f : %f\n", data.f);
strcpy( data.str, "C Programming");
printf( "data.str : %s\n", data.str);
return 0;
}
```
在上面的例子中,我们定义了一个集合Union类型的变量data,它有三个成员:整型变量i、浮点型变量f和字符数组str。由于Union只能同时存储其中的一种类型,因此在给它赋值时,只能赋值其中的一种成员。
在上面的例子中,我们先给i成员赋值为10,然后输出它的值;接着给f成员赋值为220.5,输出它的值;最后给str成员赋值为"C Programming",输出它的值。可以看到,每次赋值时,原先成员的值都会被覆盖掉。
在使用集合Union时需要注意以下几点:
1. 集合Union的大小是其中最大成员的大小。
2. 在给集合Union赋值时,只能同时赋值其中的一种成员。
3. 在取集合Union的值时,只能取其中已经赋值的成员的值。
4. 集合Union的成员可以是任意类型,包括自定义类型。