资源描述:
《语言 结构体与共用体课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章结构体与共用体9.1结构体类型的定义9.2结构体类型变量9.3结构体数组9.4结构体和指针9.5结构体和函数9.6链表9.7共用体9.8枚举9.9用typedef定义类型1numnamesexageScoreadrr041000LiPingM1878Beijing041001LiuYiF2088Jilin041002YaoLiM1990Beijing9.1结构体类型的定义学生信息:学号、姓名、性别、年龄、成绩、地址2一般形式:struct结构体名{结构体成员表};例如:structstud
2、ent{intnumber;charname[20];charsex;intage;floatscore;charaddr[30];};注意:(1)定义了一种类型,不是变量。(2)最后的分号“;”不能省略。(3)成员可以是任意类型。numnamesexageScoreadrr041000LiPingM1878Beijing041001LiuYiF2088Jilin041002YaoLiM1990Beijing3structdate{intyear;intmonth;intday;};struct
3、stu{longintnumber;charname[20];charsex;structdatebirthday;floatscore[3];charaddress[30];};返回目录49.2结构体类型变量9.2.1结构体类型变量的定义1先定义类型,再定义变量。struct结构体名变量名等;2.在定义结构体类型的同时定义变量struct结构体名{成员表}变量名表列;3.直接定义结构体类型变量struct{成员表}变量名表列;如:structstus1,s2;score[3]numname[2
4、0]sexbirthdayaddr[30]s1地址例如:structst{intnum;charname[20];floatscore;}s1,s2;例如:struct{intnum;charname[20];floatscore;}s1,s2;59.2.2结构体变量的引用结构体变量名.成员名例如:structdate{intyear;intmonth;intday;}structexample{intnum;charname[20];structdatebir;}s1,s2;各成员的引用:s1
5、.num=101;s2.num=s1.num+1;strcpy(s1.name,”wang”);s1.bir.year=1985;注意:结构体变量的初始化:结构体类型结构体变量名={初始值表};例如:structstudent{charname[10];floatscore[3];}stu={“wang_li”,81,77,96};6【例9.1】输入某学生的姓名、年龄和5门功课成绩,计算平均成绩并输出。程序运行情况:wang_li21↙8277916885↙wang_li2182.077.091
6、.068.085.0average=80.6返回目录#includevoidmain(){structstudent{charname[10];intage;floatscore[5],ave;}stu;inti;stu.ave=0;scanf("%s%d",stu.name,&stu.age)for(i=0;i<5;i++){scanf("%f",&stu.score[i]);stu.ave+=stu.score[i]/5.0;}printf("%s%4d",stu.na
7、me,stu.age);for(i=0;i<5;i++)printf("%6.1f",stu.score[i]);printf("average=%6.1f",stu.ave);}79.3结构体数组9.3.1结构体数组的定义与初始化1.结构体数组的定义例如:structstudent{intnum;charname[20];charsex;intage;floatscore[3];};structstudentstu[10];2.结构体数组的初始化例如:structstudent{intnu
8、m;charname[20];charsex;intage;floatscore[3];}stu[2]={{1101,”wangli”,’M”,21,75,82,94},{1102,”liping”,’F’,20,82,79,90}};注意:定义数组stu时,数组长度可以不指定,如:stu[]={{......},{......}};89.3.2结构体数组的引用下面通过一个例子来说明结构体数组的引用。【例9.2】输入3个复数的实部和虚部放在一个结构体数组中,根据复数模由大到小顺序对数组进行排序并