C语言中可以构造自己想要的数据类型,这种类型可以叫做符合数据类型
结构体:是由一系列具有相同类型或者不同类型的数据构成的数据集合
结构体是一种可以由我们自己定义的数据类型
#include//定义结构体包含学生的序号,三门课成绩,平均分 struct student{//student是结构体名称 int num; int score[3]; float avg; }; int main(){ //int类型的形参赋值float类型会自动消除小数点后面的数字 struct student Tom={10,{63,78},88.22}; struct student Mike{11,78,65,75}; printf("Tom的序号是:%dn",Tom.num); printf("Tom的成绩1:%dn",Tom.score[0]); printf("Tom的成绩2:%dn",Tom.score[1]); printf("Tom的成绩3:%dn",Tom.score[2]); printf("Tom的平均分是:%fn",Tom.avg); return 0; }
#include//定义结构体包含学生的序号,c语言成绩,平均分 struct student{//student是结果体名称 int num; float c; float math; double avg; }Jerry,Mike;//定义多个结构体变量 int main(){ struct student Tom={10,65.5,89.2,75}; Tom.num=14; Tom.c=88.5; Tom.avg=76; printf("Tom的序号:%dn",Tom.num); printf("Tom的c语言成绩%fn",Tom.c); printf("Tom的数学成绩是%fn",Tom.math); printf("Tom的平均成绩是%lfn",Tom.avg); return 0; }
typedef的使用
注意:它不是创建一个类型,而是给已有的一个类型取一个别名
语法:typedef 已有的类型 别名;
typedef与define的区别前者是定义类型的别名,后者是定义一个常量的别名。
结构体数组
结构体数组的初始化
语法:struct 结构体名 数组名[数组长度] ={初始值列表};
#include#include #define N 5 struct books{ //图书结构 int bno; //图书编号 char bname[20]; //书名 char field[10]; //专业领域 char author[10]; //作者 char publisher[30];//出版社 float price; //书的价格 }; int main(){ struct books book[N];//定义结构体数组保存N本图书信息 int i,j,k; char isc='n',isb='n'; int bno,count[N]={0};//数组count记录各种图书的订购数量 float total =0,pp; printf("输入书号 书名 专业领域 作者 出版社 价格:n"); //输入图书信息 for(i=0;i



