结构体的意义
问题:学籍管理需要每个学生的下列数据:学号、姓名、性别、年龄、分数,请用C语言程序存储并处理一组学生的学籍。
思考:如果有多个学生,该怎么定义 已学数据类型无法解决。
结构体概述
正式: 结构体是由一批数据组合而成的结构型数据。组成结构型数据的每个数据称为结构型数据的“成员” ,其描述了一块内存区间的大小及解释意义
通俗: 结构体属于用户自定义的数据类型,允许用户存储不同的数据类型
结构体定义
语法:
struct 结构体名 {
结构体成员列表
};
结构体的使用
struct 结构体名 变量名
struct 结构体名 变量名 = {成员1值,成员2值..}
定义结构体时顺便创建变量
#include <stdio.h>
#include <string.h>
//结构体的定义
struct stu{
int num;//学号
char name[16];//姓名
float score;//成绩
}stu3={10003,"wangwu",50};
//第三种赋值方式
int main(int argc,const *argv[]){
struct stu stu1;
stu1.num=10001;
strcpy(stu1.name,"zhangjing");
stu1.score=100;
printf("num=%d\nname=%s\nscore=%.2f\n",stu1.num,stu1.name,stu1.score);
//第一种赋值方式
struct stu stu2={10002,"lisi",80};
printf("num=%d\nname=%s\nscore=%.2f\n",stu2.num,stu2.name,stu2.score);
//第二种赋值方式,如果中间想要只赋值部分数据,可以单个赋值,如.name= ;
printf("num=%d\nname=%s\nscore=%.2f\n",stu3.num,stu3.name,stu3.score);
return 0;
}
结构体数组
作用
将自定义的结构体放入到数组中方便维护
语法
struct 结构体名 数组名[元素个数] = {{},{},……{}}