C语言结构体数组怎么定义和使用
结构体简介
结构体(struct)是C语言中一种自定义的数据类型,它可以将不同类型的数据组合在一起,结构体的定义使用关键字struct
,后面跟结构体的名称和由花括号括起来的成员列表,每个成员可以是任意类型的数据,包括基本数据类型、其他结构体类型等,结构体数组是一个包含多个结构体变量的数组。
定义结构体
1、基本结构体定义
struct Student { int id; char name[20]; float score; };
2、带默认值的结构体定义
struct Student { int id = 0; char name[20] = "unknown"; float score = 0.0; };
3、带指针的结构体定义
struct Student { int *id; char *name; float *score; };
定义结构体数组
1、直接定义结构体数组
struct Student students[3] = { {1, "张三", 90.5}, {2, "李四", 85.0}, {3, "王五", 88.0} };
2、使用malloc
动态分配内存空间定义结构体数组
include <stdlib.h> struct Student *students = (struct Student *)malloc(3 * sizeof(struct Student)); students[0] = (struct Student){1, "张三", 90.5}; students[1] = (struct Student){2, "李四", 85.0}; students[2] = (struct Student){3, "王五", 88.0};
注意:使用完动态分配的内存后,需要使用free
函数释放内存。
访问结构体数组元素
1、直接访问结构体数组元素(推荐方法)
printf("学生ID:%d,姓名:%s,成绩:%.2f ", students[0].id, students[0].name, students[0].score);
2、通过下标访问结构体数组元素(不推荐)
printf("学生ID:%d,姓名:%s,成绩:%.2f ", students[i].id, students[i].name, students[i].score); // 不推荐使用下标访问,容易出错
遍历结构体数组(for循环)
for (int i = 0; i < 3; i++) { printf("学生ID:%d,姓名:%s,成绩:%.2f ", students[i].id, students[i].name, students[i].score); }
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/230068.html