一、结构体的基本概念

结构体是 C 语言中的一种用户自定义的数据类型,可以将不同数据类型的变量组合成一个统一的整体,以便于操作。结构体可以包含多个元素,每个元素可以是不同的数据类型,如整型、字符型、字符串等。

定义一个结构体需要使用关键字 struct,后面跟一个结构体的标识符,然后是一对花括号,花括号中间是这个结构体的成员变量,以分号结束。

struct person {
    char name[20];
    int age;
    float height;
};

二、结构体的声明与初始化

定义结构体只是定义了一种数据类型,需要声明变量才能使用。声明结构体变量的方式与声明普通变量一样,只需要在变量名前面加上结构体标识符即可。

struct person p1, p2;

对结构体变量的初始化,可以使用类似于数组的方式,用花括号括起来一个初始值列表。

struct person p = {"Tom", 20, 1.75f};

三、结构体的成员访问

访问结构体成员的方式是使用结构体变量名和成员名之间的点(.)操作符。

struct person p = {"Tom", 20, 1.75f};
printf("%s is %d years old and is %.2fm tall.", p.name, p.age, p.height);

四、结构体的嵌套

结构体可以嵌套其他结构体,形成更为复杂的数据结构。

struct point {
    int x;
    int y;
};
struct circle {
    struct point center; // center是point类型的一个成员
    double radius;
};

五、结构体指针的使用

结构体指针与普通变量的指针使用方式基本相同,通过指针访问结构体成员的方式是用箭头(->)运算符。

struct person p = {"Tom", 20, 1.75f};
struct person *p_ptr = &p;
printf("%s is %d years old and is %.2fm tall.", p_ptr->name, p_ptr->age, p_ptr->height);