📜  C中的结构体(1)

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

C中的结构体

在C语言中,结构体(struct)是一种自定义的数据类型,它允许程序员将多个不同类型的变量打包成一个单独的变量,以方便操作。

定义结构体

结构体定义的一般形式为:

struct 结构体名 {
    类型1 成员变量1;
    类型2 成员变量2;
    ...
    类型n 成员变量n;
};

例如,下面定义了一个名为Student的结构体,它包含一个字符串类型的姓名和一个整型类型的年龄:

struct Student {
    char name[20];
    int age;
};
初始化结构体

可以使用以下方法来初始化结构体变量:

struct 结构体名 变量名 = {成员变量1的值, 成员变量2的值, ..., 成员变量n的值};

例如,下面初始化了一个名为stuStudent结构体变量:

struct Student stu = {"Tom", 18};
访问结构体成员变量

可以使用以下方法来访问结构体成员变量:

变量名.成员变量名

例如,要访问stu的年龄:

int age = stu.age;
结构体嵌套

在结构体中可以嵌套其他结构体,例如:

struct Teacher {
    char name[20];
    struct Student stu;
};

在访问嵌套结构体成员变量时,只需按照成员变量的层次关系依次访问即可,例如:

struct Teacher t = {"Jack", {"Tom", 18}};
char *name = t.stu.name;
结构体指针

可以使用结构体指针来访问结构体成员变量,例如:

struct Student *p = &stu;
int age = p->age;
动态分配内存

可以使用malloc()函数动态分配结构体所需的内存,例如:

struct Student *p = (struct Student *)malloc(sizeof(struct Student));
p->age = 18;
strcpy(p->name, "Tom");
总结

结构体是一种非常有用的数据类型,它能够方便地打包多个变量。在程序中,我们经常会用到结构体来描述复杂的数据结构,例如链表、树等。对结构体的深入理解,对于成为一名优秀的程序员来说是非常重要的。