C 结构体学习笔记
什么是结构体
结构体是 C 语言中的一种复合数据类型。它可以用于组合不同类型的数据,形成一个实体。结构体由多个成员变量组成,每个成员变量可以是不同类型的数据。
如何定义结构体
定义一个结构体需要使用 struct
关键字,后跟结构体名称和结构体包含的成员变量。结构体的定义通常放在头文件中,并使用 typedef
声明结构体类型。
cCopy Codetypedef struct person {
char name[20];
int age;
float height;
float weight;
} Person;
上面的代码定义了一个名为 person
的结构体,它有四个成员变量,分别是姓名、年龄、身高和体重。最后使用 typedef
将 person
定义为 Person
类型。
如何使用结构体
使用结构体时,需要先声明一个结构体变量,并对其成员变量进行赋值或访问。
声明结构体变量
声明结构体变量的语法与声明其他变量的语法相同,只需在变量名前加上结构体类型即可。
cCopy CodePerson p1;
上面的代码声明了一个名为 p1
的 Person
类型的结构体变量。
访问结构体成员变量
访问结构体成员变量需要使用点运算符 .
。
cCopy Codep1.age = 20;
上面的代码将 p1
的年龄成员变量设置为 20
。
初始化结构体变量
可以在声明结构体变量时对其进行初始化,也可以使用 {}
对所有成员变量进行初始化。
cCopy CodePerson p2 = {"Tom", 25, 175.5, 65.0};
Person p3 = {.name="Jerry", .age=23, .weight=70.0, .height=180.0};
上面的代码分别使用两种方式对 p2
和 p3
进行初始化。
结构体实例
下面是一个结构体实例,它定义了一个包含姓名、年龄和成绩的学生结构体,并对两个学生变量进行赋值和打印。
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 CodeStudent 1: name=Tom, age=19, score=90.5
Student 2: name=Jerry, age=20, score=88.0