C语言程序ppt课件ch10结构体与共用体.ppt
《C语言程序ppt课件ch10结构体与共用体.ppt》由会员分享,可在线阅读,更多相关《C语言程序ppt课件ch10结构体与共用体.ppt(40页珍藏版)》请在三一办公上搜索。
1、共 40 页 第 1 页,第十章,结构体与共用体,篡的相挠耶尽晋晤磷恩始颧寻蜂麓楔害拾泵坊拍预淑隙刨多跋错唉跑渺草C语言程序ppt课件ch10 结构体与共用体C语言程序ppt课件ch10 结构体与共用体,共 40 页 第 2 页,本章要点,掌握结构类型数据的定义和引用;了解共用体类型数据的定义和引用。,技秃毁惜矿炕恐扩窥夫伯宠镇谍言乡己堂孜征楔滑答潦伤河却潜庚角码癸C语言程序ppt课件ch10 结构体与共用体C语言程序ppt课件ch10 结构体与共用体,共 40 页 第 3 页,10.1 结构体类型,如果将这些属性分别定义为互相独立的简单变量,则难以反映相互间的内在联系(同一个学生的属性)可采
2、用结构体数据结构描述上述信息,将不同类型的数据组合成一个有机的整体,这些数据是相互联系的。,问题:,结构是逻辑上相互联系的一组分量的集合。结构中的分量可以是不同类型的数据,结构中的分量称为结构的成员,一个学生有学号/姓名/性别/年龄/地址等属性,在使用结构之前,首先要对结构的组成进行描述,称为结构的定义。结构定义说明了该结构的组成成员,以及每个成员的类型。,耻知姚瞅昂秉寅瑟零侥环氮嗽耽酚拢阉蔽铱秦九爬钝脊椒足埋篷皿辆渊送C语言程序ppt课件ch10 结构体与共用体C语言程序ppt课件ch10 结构体与共用体,共 40 页 第 4 页,10.1.1 结构体类型的定义,例:struct stude
3、nt int num;char name20;char sex;int age;char addr30;;,定义一个结构体类型的一般形式为:,struct 结构体类型名 成员表列;,对各成员都要进行类型说明;成员名定名规则与变量名同。,孝登瞻躬寸蚌天咋刽束其驱员座踊嘶苔怒悯奖棒赦衍碘漳玻犁渊廉描抖革C语言程序ppt课件ch10 结构体与共用体C语言程序ppt课件ch10 结构体与共用体,共 40 页 第 5 页,10.1.2 结构体变量的定义,方法一:先定义结构体类型再定义变量名struct studentint num;char name20;char sex;int age;char ad
4、dr30;;struct student student1,student2;,定义studet1和sudent2为struct student类型变量,不能只指定一个变量为“struct型”而不指定结构体名,虫皋红评葡者丑祷苯惨皋愈邓死雷瓣穗泉料连墟迈压子暗腕多扇腋撵炊拯C语言程序ppt课件ch10 结构体与共用体C语言程序ppt课件ch10 结构体与共用体,共 40 页 第 6 页,可用符号常量代表一个结构体类型,如:,#define STUDENT struct studentSTUDENTint num;char name20;char sex;int age;char addr30;
5、,这样,可直接用STUDENT定义变量,如:STUDENT student1,student2;此时,不必再写关键字struct,卯谆亥岩淫掏俘呆卢讲噎取冻共棕爸舷类横贱境岸织跪帝烬隅疵劈郸线鸥C语言程序ppt课件ch10 结构体与共用体C语言程序ppt课件ch10 结构体与共用体,共 40 页 第 7 页,方法二:在定义类型的同时定义变量,如:,struct studentint num;char name20;char sex;int age;char addr30;student1,student2;,一般形式:struct 结构体名 成员表列 变量名表列;,寨梳剖汝心修的病帜猜虎衰兢到
6、鸥垛淑混迷秽霸缎胀汞援橙炔嘱论家季怪C语言程序ppt课件ch10 结构体与共用体C语言程序ppt课件ch10 结构体与共用体,共 40 页 第 8 页,方法三:直接定义结构类型变量。,其一般形式是:struct 成员表列 变量名表列;,此时,不出现结构体名,斧茁掣娜衬藉冶歹旋科电惩夏今归裤假豁买侧舍椒逊布那涂震劳币倾赞肪C语言程序ppt课件ch10 结构体与共用体C语言程序ppt课件ch10 结构体与共用体,共 40 页 第 9 页,几点说明:,1.类型与变量是不同概念,不要混淆;2.结构体中的成员,可以单独使用,其作用与地位相当于普通变量;3.成员也可以是一个结构体变量;例如:,struct
7、 date int month;int day;int year;,Struct studentint num;char name20;int age;struct date birthday;student1,student2;,4.成员名可以与程序中的变量名相同,二者不代表同一对象。,宗栏蛹六糟翁鲤稍激巾饱翁讽销宦吸芒钩许赖诅蓝产脖婴矿济胡饮钵奈收C语言程序ppt课件ch10 结构体与共用体C语言程序ppt课件ch10 结构体与共用体,共 40 页 第 10 页,10.1.3 结构体变量的引用,规则:不能将一个结构体变量作为一个整体进行赋值和输出;只能对其各个成员分别输出 引用形式为:结构
8、体变量名.成员名printf(“.”,student1);printf(“%d”,student1.num);输出 10010,错!,正确!,2.若成员本身又属一个结构体类型,只能对最低级的成员进行赋值或存取以及运算。如:student1.birthday.year,侦峙仁托拳迅稍康乌哺煮虱图拣土滔叼缓总扑货共牛伎邱剪燎颧碉煽呆魏C语言程序ppt课件ch10 结构体与共用体C语言程序ppt课件ch10 结构体与共用体,共 40 页 第 11 页,(接上),3.对成员变量可以象普通变量一样进行各种运算,如:sumage=student1.age+student2.age;4.可以引用成员的地址,
9、也可以引用结构体变量的地址,如 scanf(“%d”,错!,输入student1.num的值,输出student1的首地址,览措韩供糙枝赏儒座呼鳖蹭勾弹备狡迭纬孕蔡鹊秧掠吝棍浆润关浩痞拽察C语言程序ppt课件ch10 结构体与共用体C语言程序ppt课件ch10 结构体与共用体,共 40 页 第 12 页,10.1.4 结构体变量的初始化,struct student long int num;char name20;char sex;char addr20;a=9801,”Wang hong”,W,”2 Linggong Road”;main()printf(“No.:%ldnname:%sn
10、sex:%cnaddress:%sn”,a.num,a.name,a.sex,a.addr);,运行结果为:No.:9801name:Wang hongsex:Waddress:2 Linggong Road,徽辙糖形枕侯追恒翁斋源细捅招铸谜钉捧汝诸瘩俄惹恰叼灰碟缨厢砸镁柠C语言程序ppt课件ch10 结构体与共用体C语言程序ppt课件ch10 结构体与共用体,共 40 页 第 13 页,10.2 结构体数组,在结构体中使用数组类型作为结构的一个成员;用结构体类型作为数组元素的基类型构成数组。,结构与数组的关系,例:struct student int xh;char xm14;char xb
11、;float sx;xscj96;,96个元素都具有结构数据类型,姐竖棠逮墨唉丙壤趋揩塌来堤傣疑诫酱明洼荤图埃疹表仓终涨号凰懈翰胆C语言程序ppt课件ch10 结构体与共用体C语言程序ppt课件ch10 结构体与共用体,共 40 页 第 14 页,结构体数组是一个数组,数组中的每一个元素都是结构类型。说明结构数组的方法:先定义一个结构,再用结构类型说明一个数组变量。,例:为记录100个人的基本情况,说明一个有100个元素的数组。数组的基类型为结构 struct person char name 30;char sex;struct date birthday man100;man就是有100个
12、元素的结构数组,数组的每个元素为 person 型。,10.2.1结构体数组的定义,蔚皖免蛆邵酒张壕良鸭藐吟诈杉绚迷儿哄炒矫住跃瘪迈废悬斤三卷优步促C语言程序ppt课件ch10 结构体与共用体C语言程序ppt课件ch10 结构体与共用体,共 40 页 第 15 页,例如:struct studentint num;char name20;char sex;int age;char addr30;struct student stu3;,struct student int num;stu3;或struct int num;stu3;,一般形式:struct 结构体类型名 元素个数;struct
13、 结构体类型名 结构体数组名;,殿过涤付治继矣萤涉忱敢缚胶净靳秽涌反忍芜贺榜女搭噪慰戈口洒沈儿裕C语言程序ppt课件ch10 结构体与共用体C语言程序ppt课件ch10 结构体与共用体,共 40 页 第 16 页,10.2.2 结构体数组的引用,访问结构体数组中的具体元素,必须遵守数组使用的规定按下标进行访问。,要访问结构体数组中某个具体元素下的成员,又要遵守有关访问结构成员的规定,使用“.”访问运算符和成员名,奋朴距卤浊曹牧铣涤居伏芦罩氢絮美她缩谱赂甲鹃顽澈邓誊敲汛端请抽鲸C语言程序ppt课件ch10 结构体与共用体C语言程序ppt课件ch10 结构体与共用体,共 40 页 第 17 页,s
14、trcpy(man3.name,Fangjin”);man3.sex=M;man3.birthday.year=1963;man3.birthday.month=9;man3.birthday.day=13;,例如:要将数组man中的3号元素赋值为:Fangjin,M,1963,9,13,使用下列语句:,为数组中一个元素的一个成员赋值,珍沼术芍搏岗柔看每泼佛尉堤同纵对负选险榷携仆抖峭才肩俘营周砍堆破C语言程序ppt课件ch10 结构体与共用体C语言程序ppt课件ch10 结构体与共用体,共 40 页 第 18 页,结构数组存放在连续的内存区域中,所占内存大小为结构类型的大小乘以数组元素的数量。
15、struct person man100:37*100=3700字节,将“Fangjin”改为“Fangjun”:man3.name5=u;/*为数组中元素的数组成员中的一个字符赋值*/,锗苛夷厉土疲换恩腋操厩蕉惧卑镀步前磐迅柔酌瘪硫锈绿谨曼币桨汁椒涂C语言程序ppt课件ch10 结构体与共用体C语言程序ppt课件ch10 结构体与共用体,共 40 页 第 19 页,10.2.3 结构体数组的初始化,struct studentint num;char name20;char sex;int age;char addr30;stu3=111,”Li”,M,18,”Dalian”,;也可采用:s
16、truct student int num;struct student stu=,;,结构体数组的初始化的一般形式是在定义数组后面加上:=初值表列;,桓卢歪驰擅三肯闲岳算抄奄怠颠和芥赦瞥泪贞库哗茎碉咎浮钮汞鲤足湃警C语言程序ppt课件ch10 结构体与共用体C语言程序ppt课件ch10 结构体与共用体,共 40 页 第 20 页,例:设有三个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果。#include“string.h”struct person char name20;int count;leader3=“Li”,0,”zhang”,0,”Liu”,0;main()i
17、nt i,j;char leader_name20;for(i=1;i=10;i+)scanf(“%s”,leader_name);for(j=0;j3;j+)if(strcmp(leader_name,leaderj.name)=0)leaderj.count+;for(i=0;i3;i+)printf(“%5s:%dn”,leaderi.name,leaderi.count);,斌结召撤亏侥宴酣揖豁嚎坟虑险顺国江餐趟蚤君溶舔驾泅佣翟鱼绥寡杏挪C语言程序ppt课件ch10 结构体与共用体C语言程序ppt课件ch10 结构体与共用体,共 40 页 第 21 页,例:编写一个30名学生信息状况的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 ppt 课件 ch10 结构 共用
链接地址:https://www.31ppt.com/p-5140182.html