结构体union成员
时间: 2023-08-25 10:13:18 浏览: 113
结构体、联合体的成员内存对齐的情况
结构体和联合体(union)是C语言中用于存储和组织数据的两种主要方式。
结构体(struct)是一种用户自定义的数据类型,用于将不同类型的数据组织在一起。结构体的成员可以是不同的数据类型,每个成员都可以被单独访问和操作。结构体的成员在内存中按照声明的顺序依次存放。
联合体(union)是一种特殊的数据类型,允许在同一块内存空间中存储不同类型的数据。联合体的成员会共享同一块内存空间,只能同时存储一个成员的值。访问联合体的成员时,只能访问最后一次赋值的成员。
下面是一个示例代码,展示了如何定义和使用结构体和联合体的成员:
```c
#include <stdio.h>
// 定义一个结构体
struct Person {
char name[20];
int age;
};
// 定义一个联合体
union Data {
int num;
float f;
char str[20];
};
int main() {
// 使用结构体
struct Person person;
strcpy(person.name, "John");
person.age = 25;
printf("Person: %s, %d\n", person.name, person.age);
// 使用联合体
union Data data;
data.num = 10;
printf("Data: %d\n", data.num);
data.f = 3.14;
printf("Data: %f\n", data.f);
strcpy(data.str, "Hello");
printf("Data: %s\n", data.str);
return 0;
}
```
这段代码中,我们定义了一个结构体 `Person`,包含一个字符串类型的 `name` 成员和一个整数类型的 `age` 成员。我们还定义了一个联合体 `Data`,包含一个整数类型的 `num` 成员、一个浮点数类型的 `f` 成员和一个字符串类型的 `str` 成员。在 `main` 函数中,我们分别创建了结构体和联合体的实例,并对其成员进行赋值和访问。
希望这个示例对你有帮助!如果你有更多关于结构体和联合体的问题,请随时提问。
阅读全文