📜  C结构struct(1)

📅  最后修改于: 2023-12-03 15:30:15.965000             🧑  作者: Mango

C结构 struct

在C语言中,结构(struct)是一种用户自定义类型,它允许不同类型的数据以单一实体的形式存在。 struct 可以包含不同类型的变量,如整数、浮点数、字符甚至其他结构体等。

声明 struct

在C中声明 struct 需要使用 struct 关键字,紧接着是结构体名称和包含在花括号 {} 中成员变量的列表。例如:

struct Person {
    char name[50];
    int age;
    float salary;
};

在此声明中,我们定义了一个名为 Person 的结构体,它有三个成员变量:一个 char 类型的数组 name,一个 int 类型的 age 和一个 float 类型的 salary。

使用 struct

要使用一个结构体,你需要先定义它。定义时,你可以声明结构体变量并初始化其所有成员变量,或者声明后再一一对成员变量赋值。

定义并初始化 struct 变量
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 成员变量赋值
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 结构体作为函数参数

结构体作为函数参数时,可以将结构体传递给函数,也可以将结构体指针传递给函数。

struct 结构体传递给函数
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 结构体指针传递给函数

要将结构体指针传递给函数,可以使用 -> 运算符来访问结构体中的成员变量。

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语言中的一个功能强大的结构体类型,它允许我们将不同类型的变量组合成一个实体。这使得我们在编程时更加灵活,在处理复杂的数据和数据结构时,特别是在处理大量的数据时,结构体能够提供极大的便利和优势。