📜  C结构与功能(1)

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

C结构与功能

C语言中结构体是一种自定义的数据类型,允许用户将不同类型的变量打包在一起,形成一个逻辑单元。结构体可以用于存储数据记录,也可以用于在函数间传递复杂的数据结构。

定义结构体
struct Student {
    int id;
    char name[20];
    int age;
};

上面的代码定义了一个名为Student的结构体,包含三个成员变量:idnameage

创建结构体变量
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语言中的结构体是一种强大且灵活的数据类型,可以用于构建复杂的数据结构。通过掌握结构体的定义、创建、访问和嵌套等相关知识,可以大大提高程序员的编程能力。