C语言中的结构体(Struct)是一种复合数据类型,它允许你将不同类型的数据项组合成一个单一的类型。结构体在C语言中非常有用,特别是在需要处理复杂数据时,比如存储一个人的姓名、年龄、地址等信息时,使用结构体可以很方便地将这些信息组合在一起,并以一个整体的形式进行访问和操作。
定义结构体
结构体的定义使用struct
关键字,后跟结构体的标签(也就是名字)和结构体体本身。结构体体包含了一组成员列表,每个成员都是某种数据类型(基本数据类型、数组、指针等)的变量。成员之间用分号分隔。
cpp
struct Student{
char *num;
char *name;
char *sex;
int age;
double score;
char *addr;
};
使用结构体
声明结构体变量
你可以像声明其他类型的变量一样声明结构体变量。
cpp
struct Student stu1;
或者使用typedef
为结构体类型定义一个新名字,这样就可以像使用基本数据类型一样使用结构体了。
cpp
typedef struct Student{
char *num;
char *name;
char *sex;
int age;
double score;
char *addr;
}Student;
Student stu1;
初始化结构体变量
结构体变量可以在声明时初始化。
cpp
struct Student stu1 = {"001","李红","女",22,99.9,"云南"};
或者使用typedef
定义的类型:
cpp
Student stu1 = {"001","李红","女",22,99.9,"云南"};
或者单独进行初始化:
cpp
stu1.num = "001";
stu1.name = "李红";
stu1.sex = "女";
stu1.age = 22;
stu1.score = 99.9;
stu1.addr = "云南";
访问结构体成员
结构体成员的访问使用.
运算符(对于结构体变量)或->
运算符(对于指向结构体的指针)。
cpp
// 假设我们已经有了一个Student类型的变量stu1
printf("姓名: %s\n", stu1.name);
printf("年龄: %d\n", stu1.age);
// 如果我们有一个指向Student的指针
Student *pStu= &stu1;
printf("成绩: %.2f\n", pStu->score);
printf("地址: %s\n", pStu->addr);
总结
结构体是C语言中处理复杂数据的有效方式,它们允许你将相关的数据项组合在一起,并通过一个统一的接口进行访问和操作。通过使用结构体,你可以编写更清晰、更易于维护的代码。