C语言程序设计8结构体课件

上传人:202****8-1 文档编号:251847469 上传时间:2024-11-10 格式:PPT 页数:17 大小:202.16KB
返回 下载 相关 举报
C语言程序设计8结构体课件_第1页
第1页 / 共17页
C语言程序设计8结构体课件_第2页
第2页 / 共17页
C语言程序设计8结构体课件_第3页
第3页 / 共17页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,讲课提纲,C,语言程序设计,Chap.8,结构体、共同体,和枚举类型,桂林电子科技大学,般袄簧懦弃娃里涩趋滩澳粒遥瀑接写奥窜饯姻队貉忧椭烬城咏价湖潞银尧C语言程序设计8结构体C语言程序设计8结构体,讲课提纲C语言程序设计 Chap.8 结构体、共同体桂林电,1,Chap.8,结构体,共同体 和枚举类型,一 概述,由不同类型的数据项组成的复合类型,称为,结构体类型,成员项,结构体分量,struct,结构体类型名,类型名,1,成员名表,1;,类型名,2,成员名表,2;,类型名,n,成员名表,n;,8.1 结构体类型,二 结构体类型变量的定义,1,先后定义,先定义类型,后定义变量,Ex,struct,stu,long num;,char name20,sex;,int age;,float score;,char addr30;,2,同时定义,Ex,struct,stu,long num;,char name20,sex;,int age;,float score;,char addr30;,s1,s2;,3,直接定义,缺省结构体类型名,Ex,struct,long num;,char name20,sex;,int age;,float score;,char addr30;,s1,s2;,struct,stu s1,s2;,家电抨向虏夷朔提碴痞肌谊肪此贰壶戍镭饿松姻尿雇逾浙宙蜗尉事品世颂C语言程序设计8结构体C语言程序设计8结构体,Chap.8 结构体共同体,2,结构体,2,三 结构体类型变量的初始化,struct stu s1=20101,Li Ping,M,18,86,桂林,;,四 结构体类型变量的引用,成员,结构体变量名.成员名,五 结构体数组,Ex,struct stu s40;,结构体数组,:,数组元素是结构体变量,先后定义 同时定义 直接定义,初始化,struct stu s40=,20101,Li Ping,M,18,86,桂林,20102,Wang Yifei,F,19,95,柳州,;,对,s0、s1,赋初值,六 结构体指针,struct,结构类型名,*,结构体指针名,指向运算符和圆点运算符,(*p).,成员名,p-,成员名,p,是指针,不是结构体变量,不能写成,:,p.,成员名,赠嚏蝎女喘溉摸配燎奶币侗帆皂臼窝弗战维语奉奢焕嗅酗泄械榔弦沏蜂限C语言程序设计8结构体C语言程序设计8结构体,结构体2三 结构体类型变量的初始化四 结构体类型变量的引用五,3,例题,Ex802,struct person char name9;int age;,struct person class10=,Join,17,Paul,19,M,ary,18,Adam,16;,class2.name0,Ex804,struct stud,char num6;,int s4;,double,ave,;,6,8,22,8,+,Ex803,struct ex int x;float y;char z;example;,A)struct,是结构体类型的关键字,B)example,是结构体类型名,C)x,y,z,都是结构体成员名,D)struct ex,是结构体类型,Ex801,#include,struct abc,int a,b,c;,main(),struct abc s2=1,2,3,4,5,6;int t;,t=s0.a+s1.b;,printf(,%dn,t);,s0 s1,a b c a b c,踞肥倍志裴淮友玉环紫尚塔稍姆票商饼嘿得韶酉彤沾暮摄历凸膀撞邢蹄吐C语言程序设计8结构体C语言程序设计8结构体,例题Ex802 struct person char na,4,Ex805,#include,struct st,int x;int*y;*p;,int dt4=10,20,30,40;,struct st aa4=50,main(),p=aa;printf(,%dn,+(,p-x,);,printf(,%dn,(+p)-x);,printf(,%dn,+(*p-y);,dt0,dt1,dt2,dt3,1000,1002,1004,1006,10,20,30,40,p,aa,50,1000,60,1002,70,1004,80,1006,aa0.x,.y,aa1.x,.y,aa2.x,.y,aa3.x,.y,Ex806,以下程序用来输出结构,体变量ex所占存储单元,的字节数,#include,struct st,char name20;double score;,main(),struct st ex;,printf(,ex size:%dn,);,sizeof(ex),+(,p-x,)=,51,例题,(+,p)-x,=,60,+(*,p-y),=,21,鳖鄂够眺瞧僧险踩备丘吴完智腮飘颖湍船壁奥跋究审呈蹬滤歹橇撑诊髓咎C语言程序设计8结构体C语言程序设计8结构体,Ex805#include dt0,5,8.2 自定义类型,Ex2,typedef struct,int n;,char ch8;,PER;,A)PER,是结构体变量名,B)PER,是结构体类型名,C)struct,是结构体类型名,D)typedef struct,是结构体类型,Ex3,对结构体变量定义不正确的是,A)typedef struct aa B)#define AA struct aa,int n;AA int n;,float m;float m;,AA;tdl;,AA tdl;,C)struct D)struct,int n;int n;,float m;float m;,aa;tdl;,struct aa tdl;,typedef,类型名,1,类型名,2;,类型名1是,已有定义的类型标识符,,类型名2是一个,用户定义的新,类型标识符,Ex1,typedef int INTEGER;,有了上面的定义以后,,INTEGER m,m;,等价于,int m,m;,戚直商肮骸十纺辅嫉寝凿陀吝俏剩搞斡厄欲吝案稿尼嘉门挡臆羽匀忘友嵌C语言程序设计8结构体C语言程序设计8结构体,8.2 自定义类型Ex2 typedef structEx3,6,Ex807,#include,typedef struct,int a;char b;ST;,ST*fun(ST x),ST*px;,x.a=100;x.b=,C,;px=,return px;,main(),ST y,*p;,y.a=999;y.b=,X,;,printf(,y.a=%d y.b=%cn,y.a,y.b);,p=fun(y);,printf(,(*p).a=%d (*p).b=%cn,(*p).a,p-b);,Ex808,#include,#define N 5,typedef struct,char name20;char num10;USER;,getdata(USER*sp),int i;,printf(,Enter name&phone number:n,);,for(i=0;iN;i+)gets(spi.name);gets(spi.num);,/*,输入时,姓名与电话号码各占一行,*/,例题,狄搔獭险搽毕调堤件郝僚笺蔽韭谱倍硕玖芜芽赣僵侯昧选烛氏晴根胺扇姿C语言程序设计8结构体C语言程序设计8结构体,Ex807#include Ex808,7,例题,outdata(USER*sp),int i;,printf(,After sorted:n,);,for(i=0;iN;i+),printf(,%s,%sn,spi.name,spi.num);,getsort(USER*sp),int i,j,k;USER temp;,for(i=0;iN-1;i+),k=i;,for(j=i+1;j0)k=j;,temp=spk;spk=spi;spi=temp;,main(),USER spN,temp;,getdata(sp);getsort(sp);outdata(sp);,/*,输入 排序 输出,*/,戊絮烹塑爹吊倍炼祝恼缺撇售殿授穗膨酵百膝祭啼结听年官陨易观锅黍籽C语言程序设计8结构体C语言程序设计8结构体,例题outdata(USER*sp)戊絮烹塑爹吊倍炼祝恼缺,8,8.3 链表,指针域,指向下一结点,a.ch a.p,结点,数据域,Ex809,#include,struct node,int data;,struct node*next;,;,typedef struct node NODETYPE;,main(),a,b,c,h,p,10,20,30,0,NODETYPE,a,b,c,*h,*p;,a.data=10;b.data=20;c.data=30;,h=,a.next=,c.next=,0,;,while(p),printf(,%4d,p-data);p=p-next;,printf(,n,);,p=h;,输出:,10 20 30,struct link,char ch;,struct link*p;,a;,乃科蛮可狗押角胆及邪松拆翔鞭什朔掉胁冕撞挨贵簿纵柜男殖烯吭柔凿韦C语言程序设计8结构体C语言程序设计8结构体,8.3 链表指针域 指向下一结点a.ch a.p结点数据,9,建立链表,Ex810,建立带有头结点的单向链表,读取数据,生成新结点,存入数据,将新结点插入到链表,SLIST*creat_slist(),int c;,SLIST*h,*s,*p;,scanf(,%d,/*,设,c=,10,*/,h=(SLIST*)malloc(sizeof(SLIST);,/*,生成头结点,*/,p=h;,/*,p:,遍历指针,*/,while(c!=-1),/*,-1:,读入数据结束标志,*/,s=(SLIST*),malloc(sizeof(SLIST),);,/*,生成新结点,*/,s-data=c;,/*,存入数据,*/,p-next=s;,/*,将新结点连到链表末尾,*/,p=s;,scanf(,%d,/*,设,c=,20,*/,p-next=,0,;,/*,置链表结束标志,*/,return h;,/*,返回头指针,*/,h,p,s,p,10,s,20,p,瀑邓躯溶汾遁凡贤温漓时圾村哮布患翰妓对郴乎搅碑哟苇照贱颗嫉津哆启C语言程序设计8结构体C语言程序设计8结构体,建立链表Ex810 建立带有头结点的单向链表SLIST*c,10,输出链表,print_slist(SLIST*h),SLIST*p;,p=h-next;,if(p=,=,0,)printf(,Linklist is null!n,);,else,printf(,Head,);,do printf(,-%d,p-data);,p=p-next;,while(p!=,0,);,printf(,-Endn,);,h,10,20,30,0,p,p,诞孜蔡类扬勃若灯芝炒癣致什俩誓窝涩旭癸吟蛆蔗狗兜迟绽萨卢盾因翱八C语言程序设计8结构体C语言程序设计8结构体,输出链表print_slist(SLIST*h)h1020,11,插入结点,insert_snode(SLIST*h),int x,y;,/*,在值为,x,的结点前,插入值为,y,的结点,*/,SLIST*s,*p,*q;,printf(,insert:x,y=,);scanf(,%d%d,s=(SLIST*)malloc(sizeof(SLIST);,/*,生成新结点,*/,s-data=y;,/*,新结点中存入,值,y,*/,q=h;p=h-next;,while(,p!=,0,)&(,p-data!=x,),q=p;p=p-next;,s-next=p;,q-next=s;,h,10,20,30,0,设,x,为,20,,y,为,15:,插在中间,s,15,q,p,h,q,p
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!