欢迎来到天天文库
浏览记录
ID:56430657
大小:74.00 KB
页数:40页
时间:2020-06-18
《c语言―-结构体课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第十一章结构体11.1概述在实际应用中,有不少应用问题如果只采用已学的变量和数组作为数据结构显得很不方便。例:输入100个学生的学号、姓名和考试成绩,编写程序找出高分者和低分者。用变量和数组作数据结构可编写程序如下:main(){inti,num,maxnum,minnum;charname[20],maxname[20],minname[20];intscore,maxscore,minscore;maxscore=0;minscore=100;for(i=1;i<=100;i++){scanf(%d%s%d”,&num,name,&score);if(score>maxscore){m
2、axscore=score;maxnum=num;strcpy(maxname,name);}if(score3、,它包含三个成员。11.2定义结构体类型变量的方法前面定义的结构体类型只是一种“模型”,还必须定义结构体变量后才能存放数据。定义结构体变量有三种方法:1、先定义结构体类型再定义结构体变量定义了结构体类型后:structstudentst,stmax,stmin;类型符变量名定义了三个结构体变量,每个变量包含三个成员,每个变量可存放一个学生的数据。2、在定义结构体类型的同时定义结构体变量structstudent{intnum;charname[20];intscore;}st,stmax,stmin;3、直接定义结构体类型变量struct不出现类型名{intnum;charname[20]4、;intscore;}st,stmax,stmin;常用第一种方法说明:①类型与变量不同,只对变量分配空间与操作。②对成员可以单独使用,相当于普通变量。③成员也可以是一个结构体变量。structdatestructstudent{intmonth;{intnum;intday;charname[20];intyear;structdatebirthday;};}st1,st2;④成员名可以与程序中的变量名相同,两者代表不同的对象。11.3结构体变量的引用■成员引用可以对成员单独引用,形式为:结构体变量名.成员名成员运算符st.num=1001;st.score=90;strcpy(st.n5、ame,”Li”);printf(“%d%s%d”,st.num,st.name,st.score);scanf(“%d%s%d”,&st.num,st.name,&st.score);可以引用成员的地址如果成员本身又属一个结构体类型,则要用若干个成员运算符,一级一级地找到最低一级的成员,只能对最低级的成员进行存取与运算。st1.birthday.year=1960;st1.birthday.month=5;st1.birthday.day=15;■整体引用可以对结构体变量进行整体赋值:stmax=st;将st中的所有内容赋值给stmax。对结构体变量的整体操作只限于赋值操作和参数传递,而6、且要求类型一致。不能对结构体变量进行整体输入输出。结构体应用举例:编写程序输入100个学生的学号、姓名和考试成绩,找出高分者和低分者。structstudent{intnum;charname[20];intscore;};main(){inti;structstudentst,stmax,stmin;stmax.score=0;stmin.score=100;for(i=1;i<=100;i++){scanf(“%d%s%d”,&st.num,st.name,&st.score);if(st.score>stmax.score)stmax=st;if(st.score7、re)stmin=st;}printf(“%5d%15s%5d”,stmax.num,stmax.name,stmax.score);printf(“%5d%15s%5d”,stmin.num,stmin.name,stmin.score);}11.4结构体变量的初始化对结构体变量可以在定义时指定初始值structstudent{intnum;charname[20];intscore;}st={1001,”wa
3、,它包含三个成员。11.2定义结构体类型变量的方法前面定义的结构体类型只是一种“模型”,还必须定义结构体变量后才能存放数据。定义结构体变量有三种方法:1、先定义结构体类型再定义结构体变量定义了结构体类型后:structstudentst,stmax,stmin;类型符变量名定义了三个结构体变量,每个变量包含三个成员,每个变量可存放一个学生的数据。2、在定义结构体类型的同时定义结构体变量structstudent{intnum;charname[20];intscore;}st,stmax,stmin;3、直接定义结构体类型变量struct不出现类型名{intnum;charname[20]
4、;intscore;}st,stmax,stmin;常用第一种方法说明:①类型与变量不同,只对变量分配空间与操作。②对成员可以单独使用,相当于普通变量。③成员也可以是一个结构体变量。structdatestructstudent{intmonth;{intnum;intday;charname[20];intyear;structdatebirthday;};}st1,st2;④成员名可以与程序中的变量名相同,两者代表不同的对象。11.3结构体变量的引用■成员引用可以对成员单独引用,形式为:结构体变量名.成员名成员运算符st.num=1001;st.score=90;strcpy(st.n
5、ame,”Li”);printf(“%d%s%d”,st.num,st.name,st.score);scanf(“%d%s%d”,&st.num,st.name,&st.score);可以引用成员的地址如果成员本身又属一个结构体类型,则要用若干个成员运算符,一级一级地找到最低一级的成员,只能对最低级的成员进行存取与运算。st1.birthday.year=1960;st1.birthday.month=5;st1.birthday.day=15;■整体引用可以对结构体变量进行整体赋值:stmax=st;将st中的所有内容赋值给stmax。对结构体变量的整体操作只限于赋值操作和参数传递,而
6、且要求类型一致。不能对结构体变量进行整体输入输出。结构体应用举例:编写程序输入100个学生的学号、姓名和考试成绩,找出高分者和低分者。structstudent{intnum;charname[20];intscore;};main(){inti;structstudentst,stmax,stmin;stmax.score=0;stmin.score=100;for(i=1;i<=100;i++){scanf(“%d%s%d”,&st.num,st.name,&st.score);if(st.score>stmax.score)stmax=st;if(st.score7、re)stmin=st;}printf(“%5d%15s%5d”,stmax.num,stmax.name,stmax.score);printf(“%5d%15s%5d”,stmin.num,stmin.name,stmin.score);}11.4结构体变量的初始化对结构体变量可以在定义时指定初始值structstudent{intnum;charname[20];intscore;}st={1001,”wa
7、re)stmin=st;}printf(“%5d%15s%5d”,stmax.num,stmax.name,stmax.score);printf(“%5d%15s%5d”,stmin.num,stmin.name,stmin.score);}11.4结构体变量的初始化对结构体变量可以在定义时指定初始值structstudent{intnum;charname[20];intscore;}st={1001,”wa
此文档下载收益归作者所有