程序设计课件-结构体与共用体

程序设计课件-结构体与共用体

ID:21602309

大小:597.00 KB

页数:63页

时间:2018-10-19

程序设计课件-结构体与共用体_第1页
程序设计课件-结构体与共用体_第2页
程序设计课件-结构体与共用体_第3页
程序设计课件-结构体与共用体_第4页
程序设计课件-结构体与共用体_第5页
资源描述:

《程序设计课件-结构体与共用体》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、结构体与共用体用户定义类型—结构体突破C语言提供的基本类型(如整形、实形、字符形),用户可以自己定义数据类型结构数据类型的特点特点:从不同的侧面描述某个数据对象,不同侧面所需的数据类型可能是不相同的。如:关于学生student的记录,它是从不同侧面来描述学生的,有:学号(整形)名字(字符串形)性别(字符形)年龄(整形)成绩(浮点形)地址(字符串形)10010LiFunM1887.5Beijingnumnamesexagescoreaddr结构类型的定义与变量的声明类型定义格式(注意最后的分号):struct结构名{成员列表};structstudent{int

2、num;charname[20];charsex;floatscore;};注意:成员列表内的元素可以是基本类型,也可以是结构类型;甚至其它构造类型.先定义结构类型名,再声明变量名;结构变量的声明1001WangM86.5structstudentboy1,boy2;结构类型名结构体变量名1002ZhangF93boy1boy2结构变量的声明定义结构名的同时,声明变量;structstudent{intnum;charname[20];charsex;floatscore;}boy1,boy2;一般形式为:struct结构名{成员表列}变量名表列;成员也可以是

3、结构体变量structdate{intmonth;intday;intyear;};struct{intnum;charname[20];charsex;structdatebirthday;floatscore;}boy1,boy2;结构变量的引用格式:格式变量名.成员名如果成员本身又是一个结构,则通过多个“.”找最低成员。对结构的成员引用,可以像对一般的成员引用。boy1.num即第一个人的学号boy2.sex即第二个人的性别boy1.birthday.month第一个人的出生月main(){structstu/*定义结构*/{intnum;charnam

4、e[20];charsex;floatscore;}boy2,boy1={102,"Zhangping",'M',78.5};boy2=boy1;printf("Number=%dName=%s",boy2.num,boy2.name);printf("Sex=%cScore=%f",boy2.sex,boy2.score);}结构变量的初始化main(){structstu{intnum;charname[20];charsex;floatscore;}boy1,boy2;boy1.num=102;strcpy(boy1.name,"Zhan

5、gping");printf("inputsexandscore");scanf("%c%f",&boy1.sex,&boy1.score);boy2=boy1;printf("Number=%dName=%s",boy2.num,boy2.name);printf("Sex=%cScore=%f",boy2.sex,boy2.score);}结构变量的赋值结构变量的赋值就是给各成员赋值。可用输入语句或赋值语句来完成。结构数组数组的元素也可以是结构类型的。可以构成结构型数组。结构数组的每一个元素都是具有相同结构类型的下标结构变量。在实际应用

6、中,经常用结构数组来表示具有相同数据结构的一个群体。如一个班的学生档案,一个车间职工的工资表等。structstu{intnum;char*name;charsex;floatscore;}boy[5];定义了一个结构数组boy,共有5个元素,boy[0]~boy[4]。每个数组元素都具有structstu的结构形式。结构数组structstu{intnum;char*name;charsex;floatscore;}boy[5]={{101,"Liping",'M',45},{102,"Zhangping",'M',62.5},{103,"Hefang",'

7、F',92.5},{104,"Chengling",'F',87},{105,"Wangming",'M',58},};main(){inti,c=0;floatave,s=0;for(i=0;i<5;i++){s+=boy[i].score;if(boy[i].score<60)c+=1;}printf("s=%f",s);ave=s/5;printf("average=%fcount=%d",ave,c);【例】计算学生的平均成绩和不及格的人数指向结构变量的指针一般形式为:struct结构名*结构指针变量名如:structstu*pstu;赋值

8、是把结构变量的首地址赋予该指针变量,不

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。