c语言中 union 的用法
时间: 2023-08-05 14:06:42 浏览: 235
C语言、C++中的union用法总结
在C语言中,union是一种特殊的数据类型,它允许您在同一内存空间中存储不同类型的数据。union的用法如下:
1. 声明union:使用关键字union,后跟union的名称。在声明时,不会分配内存空间。
```c
union myUnion {
int x;
float y;
char z;
};
```
2. 访问union成员:可以使用点运算符(.)来访问union的成员。
```c
union myUnion u;
u.x = 10;
printf("%d", u.x); // 输出10
u.y = 3.14;
printf("%f", u.y); // 输出3.14
u.z = 'A';
printf("%c", u.z); // 输出A
```
3. 共用内存空间:union的成员共享同一块内存空间,因此修改一个成员会影响其他成员。
```c
union myUnion u;
u.x = 10;
printf("%d", u.x); // 输出10
u.y = 3.14;
printf("%d", u.x); // 输出不确定的值,因为y和x共用内存空间
```
4. 大小:union的大小等于其最大成员的大小。
```c
union myUnion {
int x;
float y;
char z;
};
printf("%lu", sizeof(union myUnion)); // 输出4,因为int类型占4个字节
```
5. 匿名union:可以在结构体中使用匿名union,以节省内存空间。
```c
struct myStruct {
int a;
union {
int x;
float y;
};
};
```
请注意,使用union时需要谨慎,确保正确地访问和使用共享的内存空间。
阅读全文