📜  C中的结构(1)

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

C中的结构

C语言中的结构体是一种用户定义的数据类型,可以包含多个不同类型的变量,从而方便地组织和管理数据。

定义结构体

结构体的定义通常包含在头文件中,格式为:

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

在上述定义中,<结构体名>是结构体的名称,<成员1名>~<成员n名>是结构体的成员名,可以根据实际需要自行命名。

下面是一个简单结构体的定义示例:

struct student{
    char name[20];
    int roll_no;
    float marks;
};
访问结构体成员

结构体中的成员可以使用“.”操作符访问,即结构体变量名后接.<成员名>即可。

struct student s1;

strcpy(s1.name, "John");
s1.roll_no = 25;
s1.marks = 86.5;
结构体作为函数参数

结构体也可以作为参数传递给函数。可以按值传递结构体,也可以按引用传递结构体指针。

void print_student(struct student s){
    printf("Name: %s\n", s.name);
    printf("Roll No.: %d\n", s.roll_no);
    printf("Marks: %.2f\n", s.marks);
}

void update_marks(struct student *s, float new_marks){
    s->marks = new_marks;
}
结构体数组

结构体也可以形成数组,可以对数组中的元素进行遍历和访问。

struct student s[3] = {
    {"John", 25, 86.5},
    {"Mary", 32, 92.0},
    {"Tom", 14, 78.5}
};

for(int i=0; i<3; i++){
    printf("Name: %s\n", s[i].name);
    printf("Roll No.: %d\n", s[i].roll_no);
    printf("Marks: %.2f\n\n", s[i].marks);
}
结构体嵌套

结构体也可以嵌套,即在结构体中定义另一个结构体作为其中一个成员。

struct date{
    int day;
    int month;
    int year;
};

struct employee{
    char name[20];
    struct date hire_date;
    float salary;
};

以上就是C语言中结构体的基本使用方法。结构体是C语言中非常重要的数据类型,能够提高程序的可读性和维护性。