📅  最后修改于: 2023-12-03 15:00:11.962000             🧑  作者: Mango
在C语言中,结构体(struct)是一种自定义的数据类型,它允许程序员将多个不同类型的变量打包成一个单独的变量,以方便操作。
结构体定义的一般形式为:
struct 结构体名 {
类型1 成员变量1;
类型2 成员变量2;
...
类型n 成员变量n;
};
例如,下面定义了一个名为Student
的结构体,它包含一个字符串类型的姓名和一个整型类型的年龄:
struct Student {
char name[20];
int age;
};
可以使用以下方法来初始化结构体变量:
struct 结构体名 变量名 = {成员变量1的值, 成员变量2的值, ..., 成员变量n的值};
例如,下面初始化了一个名为stu
的Student
结构体变量:
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");
结构体是一种非常有用的数据类型,它能够方便地打包多个变量。在程序中,我们经常会用到结构体来描述复杂的数据结构,例如链表、树等。对结构体的深入理解,对于成为一名优秀的程序员来说是非常重要的。