📅  最后修改于: 2023-12-03 15:30:15.965000             🧑  作者: Mango
在C语言中,结构(struct)是一种用户自定义类型,它允许不同类型的数据以单一实体的形式存在。 struct 可以包含不同类型的变量,如整数、浮点数、字符甚至其他结构体等。
在C中声明 struct 需要使用 struct 关键字,紧接着是结构体名称和包含在花括号 {} 中成员变量的列表。例如:
struct Person {
char name[50];
int age;
float salary;
};
在此声明中,我们定义了一个名为 Person 的结构体,它有三个成员变量:一个 char 类型的数组 name,一个 int 类型的 age 和一个 float 类型的 salary。
要使用一个结构体,你需要先定义它。定义时,你可以声明结构体变量并初始化其所有成员变量,或者声明后再一一对成员变量赋值。
struct Person {
char name[50];
int age;
float salary;
};
int main() {
struct Person person1 = {"John", 25, 5000.0};
struct Person person2 = {"Mary", 30, 8000.0};
return 0;
}
在此示例中,我们定义了两个 Person 类型的变量 person1 和 person2,并初始化它们的所有成员变量。
struct Point {
int x;
int y;
};
int main() {
struct Point point1;
point1.x = 10;
point1.y = 20;
struct Point point2 = {30, 40};
return 0;
}
在此示例中,我们定义了两个 Point 类型的变量 point1 和 point2,并分别逐一对它们的成员变量赋值。
结构体作为函数参数时,可以将结构体传递给函数,也可以将结构体指针传递给函数。
struct Person {
char name[50];
int age;
float salary;
};
void printPerson(struct Person person) {
printf("Name: %s\n", person.name);
printf("Age: %d\n", person.age);
printf("Salary: %f\n", person.salary);
}
int main() {
struct Person person1 = {"John", 25, 5000.0};
struct Person person2 = {"Mary", 30, 8000.0};
printPerson(person1);
printPerson(person2);
return 0;
}
在此示例中,我们定义了函数 printPerson,它接受一个 Person 类型结构体作为参数,并将其成员变量打印到控制台。
要将结构体指针传递给函数,可以使用 -> 运算符来访问结构体中的成员变量。
struct Person {
char name[50];
int age;
float salary;
};
void printPerson(struct Person *person) {
printf("Name: %s\n", person->name);
printf("Age: %d\n", person->age);
printf("Salary: %f\n", person->salary);
}
int main() {
struct Person person1 = {"John", 25, 5000.0};
struct Person person2 = {"Mary", 30, 8000.0};
printPerson(&person1);
printPerson(&person2);
return 0;
}
在此示例中,我们定义了函数 printPerson,它接受一个 Person 类型结构体指针作为参数,并将其成员变量打印到控制台。
struct 是C语言中的一个功能强大的结构体类型,它允许我们将不同类型的变量组合成一个实体。这使得我们在编程时更加灵活,在处理复杂的数据和数据结构时,特别是在处理大量的数据时,结构体能够提供极大的便利和优势。