📅  最后修改于: 2023-12-03 15:30:15.976000             🧑  作者: Mango
C语言中结构体是一种自定义的数据类型,允许用户将不同类型的变量打包在一起,形成一个逻辑单元。结构体可以用于存储数据记录,也可以用于在函数间传递复杂的数据结构。
struct Student {
int id;
char name[20];
int age;
};
上面的代码定义了一个名为Student
的结构体,包含三个成员变量:id
、name
和age
。
struct Student stu1;
上面的代码声明了一个名为stu1
的结构体变量,存储在栈中。
struct Student *stu2;
stu2 = (struct Student *)malloc(sizeof(struct Student));
上面的代码动态分配了一个名为stu2
的结构体变量,并将其地址赋给指针变量stu2
。
使用.
运算符访问结构体的成员:
stu1.id = 100001;
strcpy(stu1.name, "Tom");
stu1.age = 18;
使用->
运算符访问结构体指针的成员:
stu2->id = 100002;
strcpy(stu2->name, "Jerry");
stu2->age = 19;
struct Date {
int year;
int month;
int day;
};
struct Student {
int id;
char name[20];
int age;
struct Date birth;
};
上面的代码定义了一个嵌套结构体Date
,表示日期,将其作为成员放到了学生结构体中。
struct Student stu[3];
上面的代码定义了一个由三个结构体变量组成的数组。
struct Student *stu[3];
for (int i = 0; i < 3; i++) {
stu[i] = (struct Student *)malloc(sizeof(struct Student));
}
上面的代码定义了一个由三个结构体指针变量组成的数组,并使用malloc()
函数为每个指针变量分配内存空间。
C语言中的结构体是一种强大且灵活的数据类型,可以用于构建复杂的数据结构。通过掌握结构体的定义、创建、访问和嵌套等相关知识,可以大大提高程序员的编程能力。