结构体(Structures)和共用体(Unions)是C语言中的两种复合数据类型,用于存储不同类型的数据。
目录
结构体(Structures):
1. 定义结构体:
struct 结构体名 {
类型 成员1;
类型 成员2;
// ...
};
2. 创建结构体变量:
struct 结构体名 变量名;
3. 访问结构体成员:
变量名.成员名;
4. 示例:
struct Person {
char name[20];
int age;
};
struct Person p1;
p1.age = 25;
strcpy(p1.name, "John Doe");
printf("Name: %s\n", p1.name);
printf("Age: %d\n", p1.age);
共用体(Unions):
1. 定义共用体:
union 共用体名 {
类型 成员1;
类型 成员2;
// ...
};
2. 创建共用体变量:
union 共用体名 变量名;
3. 访问共用体成员:
变量名.成员名;
4. 共用体的特性:
- 共用体的成员在内存中共享同一块空间,因此每次只能存储一个成员的值。
- 共用体的大小等于最大成员的大小。
- 存储一个成员后,其他成员的值会被覆盖。
5. 示例:
union Data {
int i;
float f;
char str[20];
};
union Data data;
data.i = 10;
printf("整数值:%d\n", data.i);
data.f = 3.14;
printf("浮点数值:%f\n", data.f);
strcpy(data.str, "Hello");
printf("字符串值:%s\n", data.str);
结构体和共用体是C语言中灵活而强大的数据类型,可以用于组织和操作多种数据类型。通过结构体,可以定义一种新的自定义数据类型,将相关的数据组织在一起。而共用体则可以在不同类型的数据之间进行转换,节省内存空间。两者在实际应用中经常被用于构建复杂的数据结构和实现高效的数据处理。