`struct`是C语言中的一种数据结构,用于将多个不同类型的变量组合在一起。它允许你创建自定义的数据类型,以便更好地组织和管理相关的数据。
例子:
#include <stdio.h>
// 定义一个名为Person的结构体
struct Person {
char name[50]; // 姓名
int age; // 年龄
float height; // 身高(单位:米)
};
int main() {
// 创建一个Person类型的变量
struct Person person1;
// 给结构体的成员赋值
strcpy(person1.name, "Alice");
person1.age = 30;
person1.height = 1.65;
// 输出结构体成员的值
printf("Name: %s\n", person1.name);
printf("Age: %d\n", person1.age);
printf("Height: %.2f meters\n", person1.height);
return 0;
}
我们首先定义了一个名为`Person`的结构体,其中包含了三个成员:`name`、`age`和`height`。然后,在`main`函数中,我们创建了一个`Person`类型的变量`person1`,并为其成员分别赋值。最后,我们使用`printf`函数输出了这些成员的值。结构体的成员可以是任何基本数据类型,也可以是其他结构体或指针类型。此外,还可以使用结构体数组来存储多个结构体实例。
结构体(struct)可以包含其他结构体作为其成员。这种嵌套的结构体被称为“内嵌结构体”或“复合结构体”。
#include <stdio.h>
// 定义一个内嵌结构体Person
struct Person {
char name[50];
int age;
};
// 定义一个外层结构体Employee,其中包含一个Person类型的成员
struct Employee {
int id;
struct Person person; // 内嵌结构体Person
};
int main() {
// 创建一个Employee实例并初始化
struct Employee employee1 = {1, {"张三", 30}};
// 访问内嵌结构体的成员
printf("员工ID: %d\n", employee1.id);
printf("姓名: %s\n", employee1.person.name);
printf("年龄: %d\n", employee1.person.age);
return 0;
}
我们定义了一个名为Person
的结构体,它包含两个成员:name
和age
。然后,我们定义了一个名为Employee
的结构体,它包含一个id
和一个Person
类型的成员。在main
函数中,我们创建了一个Employee
实例,并初始化了它的成员。最后,我们访问了内嵌结构体的成员。