C 结构体学习笔记

什么是结构体

结构体是 C 语言中的一种复合数据类型。它可以用于组合不同类型的数据,形成一个实体。结构体由多个成员变量组成,每个成员变量可以是不同类型的数据。

如何定义结构体

定义一个结构体需要使用 struct 关键字,后跟结构体名称和结构体包含的成员变量。结构体的定义通常放在头文件中,并使用 typedef 声明结构体类型。

cCopy Code
typedef struct person { char name[20]; int age; float height; float weight; } Person;

上面的代码定义了一个名为 person 的结构体,它有四个成员变量,分别是姓名、年龄、身高和体重。最后使用 typedefperson 定义为 Person 类型。

如何使用结构体

使用结构体时,需要先声明一个结构体变量,并对其成员变量进行赋值或访问。

声明结构体变量

声明结构体变量的语法与声明其他变量的语法相同,只需在变量名前加上结构体类型即可。

cCopy Code
Person p1;

上面的代码声明了一个名为 p1Person 类型的结构体变量。

访问结构体成员变量

访问结构体成员变量需要使用点运算符 .

cCopy Code
p1.age = 20;

上面的代码将 p1 的年龄成员变量设置为 20

初始化结构体变量

可以在声明结构体变量时对其进行初始化,也可以使用 {} 对所有成员变量进行初始化。

cCopy Code
Person p2 = {"Tom", 25, 175.5, 65.0}; Person p3 = {.name="Jerry", .age=23, .weight=70.0, .height=180.0};

上面的代码分别使用两种方式对 p2p3 进行初始化。

结构体实例

下面是一个结构体实例,它定义了一个包含姓名、年龄和成绩的学生结构体,并对两个学生变量进行赋值和打印。

cCopy Code
#include <stdio.h> typedef struct student { char name[20]; int age; float score; } Student; int main() { Student s1 = {"Tom", 19, 90.5}; Student s2 = {.name="Jerry", .age=20, .score=88.0}; printf("Student 1: name=%s, age=%d, score=%.1f\n", s1.name, s1.age, s1.score); printf("Student 2: name=%s, age=%d, score=%.1f\n", s2.name, s2.age, s2.score); return 0; }

输出结果为:

Copy Code
Student 1: name=Tom, age=19, score=90.5 Student 2: name=Jerry, age=20, score=88.0