【C语言】结构体类型的数组和指针(干货满满,建议收藏!!!) | 您所在的位置:网站首页 › 结构体数组作为函数参数 › 【C语言】结构体类型的数组和指针(干货满满,建议收藏!!!) |
结构体数组
前言1、结构体类型数组的定义与初始化1.1结构体数组的定义1.2结构体数组初始化
2、结构体数组的应用3、结构体指针指向结构体数组
这篇文章将讲述结构体类型的数组的定义、初始化、应用和结构体指针的使用。还会扩展scanf_s函数相关知识。 前言一个结构体变量中可以存放一组有关联的数据(如一个学生的学号、姓名、性别、成绩、地址等数据)。如果有 20个学生的数据需要处理,应该用数组,但是普通的数组显然不能处理怎么复杂的问题,这时就需要结构体类型的数组了。结构体数组与数值型数组的不同之处在于每个数组元素都是一个结构体类型的数据,结构体数组的每个元素都包含了结构体中的每个成员。 结构体基本知识:https://editor.csdn.net/md/?articleId=139336546 1、结构体类型数组的定义与初始化 1.1结构体数组的定义方式一:struct 结构体类型名 数组名[数组大小]; //结构体声明 struct Student { char id[20];//学号 char name[10]; int age; float score; }; int main() { struct Student class1[20];//定义结构体数组,表示班级1有20个学生 return 0; }方式二:在声明结构体时定义一个结构体数组 struct Student { char id[20];//学号 char name[10]; int age; float score; }class1[20]; int main() { return 0; } 1.2结构体数组初始化方式:struct Student class1[20] = { 初始值列表 }; 如:struct Student class1[2] = { "20242356","小敏",18,88.9,"20242345","小鹤",19,85.9 }; //结构体声明 struct Student { char id[20];//学号 char name[10]; int age; float score; }; int main() { //定义结构体数组并初始化,表示班级1有2个学生 struct Student class1[2] = { "20242356","小敏",18,88.9,"20242345","小鹤",19,85.9 }; return 0; } 2、结构体数组的应用现在有 3 个候选人准备当选学生会部长,每个学生会成员只能投票选一人,有学生会有5个成员,先后输入被选人的名字,最后输出各人得票结果。 // 结构体声明 struct Student { char name[20]; int count; }; int main() { struct Student leader[2] = { "小明", 0, "小夏", 0 }; //初始化 char leader_name[20]; //用来存放成员投票候选人的名字 //成员输入自己要投的候选人 printf("开始投票:\n"); for (int i = 0; i if (strcmp(leader_name, leader[j].name) == 0) { leader[j].count++; } } } printf("投票结果:\n"); for (int i = 0; i char name[20]; float score; }; int main() { struct Student s1 = { "小新",89.5 }; struct Student* p = &s1; printf("name:%s score:%.1f\n",p->name, p->score); printf("name:%s score:%.1f\n",(*p).name, (*p).score); return 0; }输出结果: (2)指向结构体数组的指针: 有 3 个学生的成绩,放在结构体数组中,要求输出全部学生的成绩。 struct Student { char name[20]; float score; }; int main() { //定义结构体数组并初始化 struct Student stu[3] = { {"Li Ming" ,88.5},{"Zhang San" ,78.5},{"Wang Wu",91.5} }; //定义指向struct Student结构体变量的指针变量 struct Student* p; for (p = stu; p |
CopyRight 2018-2019 实验室设备网 版权所有 |