首页 二级C语言:结构体和共同体

二级C语言:结构体和共同体

举报
开通vip

二级C语言:结构体和共同体第十一章结构体和共同体*——struct、union主要内容为什么要用结构体结构体的定义和成员调用共同体结构数组事物总是具有多方面的属性一个学生学号姓名性别专业……结构体(类型)的定义struct结构名{成员表列};structstudent{intid;charname[20];charsex;floatscore;};结构体变量的声明先定义结构体,再说明变量(具体)structstudent{intid;charname[20];charsex;floatscore;};structstudentboy1,bo...

二级C语言:结构体和共同体
第十一章结构体和共同体*——struct、union主要内容为什么要用结构体结构体的定义和成员调用共同体结构数组事物总是具有多方面的属性一个学生学号姓名性别专业……结构体(类型)的定义struct结构名{成员表列};structstudent{intid;charname[20];charsex;floatscore;};结构体变量的声明先定义结构体,再说明变量(具体)structstudent{intid;charname[20];charsex;floatscore;};structstudentboy1,boy2;结构体变量的声明定义结构体类型的同时说明结构变量structstudent{intid;charname[20];charsex;floatscore;}boy1,boy2;结构体变量的声明直接说明struct{intid;charname[20];charsex;floatscore;}boy1,boy2;结构体变量的声明结构体里的成员可以是常规变量,也可以是个结构变量structdate{intyear;intmonth;intday;};structstd_info{charno[7];charname[9];charsex[3];structdatebirthday;};成员的调用和赋值结构名.成员名structdate{intyear;intmonth;intday;};structstd_info{intnum;charname[9];charsex;structdatebirthday;}boy1,boy2;boy1.numboy2.sexboy2.birthday.year成员的调用和赋值1)初始化赋值structstudent{intnum;char*name;charsex;floatscore;}boy1={102,"Zhangping",'M',78.5};成员的调用和赋值2)成员赋值和结构变量之间相互赋值main(){structstudent{intnum;char*name;charsex;floatscore;}boy1,boy2;boy1.num=102;boy1.name="Zhangping";printf("inputsexandscore\n");scanf("%c%f",&boy1.sex,&boy1.score);boy2=boy1;printf("Number=%d\nName=%s\n",boy2.num,boy2.name);printf("Sex=%c\nScore=%f\n",boy2.sex,boy2.score);}结构数组:每个元素都是一个结构变量构建一个结构数组structstudent{intnum;char*name;charsex;floatscore;}boy[5];boy[0].numboy[4].sexboy[1].floatboy[2]=boy[3]结构指针变量1)指向结构体的指针:struct结构名*结构指针变量名structstudent{intnum;char*name;charsex;floatscore;}boy={101,"Liping","M",85}structstudent*sp;sp=&boy;结构指针变量用指针变量访问成员:(*结构指针变量名).成员名结构指针变量名->成员名sp->name(*sp).nameboy.name结构指针变量2)指向结构体数组的指针structstudent{intnum;char*name;charsex;floatscore;}boy[5]={{101,"Zhouping",'M',45},{102,"Zhangping",'M',62.5},{103,"Lioufang",'F',92.5},{104,"Chengling",'F',87},{105,"Wangming",'M',58}};main(){structstudent*ps;printf("No\tName\t\t\tSex\tScore\t\n");for(ps=boy;psnum,ps->name,ps->sex,(*ps).score);}结构指针变量2)指向结构体数组的指针注意ps=boyps=&boy[0]ps=&boy[0].num结构指针变量链表的基础知识structnode{intdata;structnode*next;};main(){structnodea,b,c,*h,*p;a.data=10;b.data=20;c.data=30;a.next=&b;b.next=&c;c.next=‘\0’;h=&a;p=hWhile(p){printf(“%d”,p->data);p=p->next;}printf(“\n”);}共同体(联合体)union联合名{成员表列};unionperdata{intclass;charoffice[10];};共同体先定义,再说明变量(具体)unionperdata{intclass;charoffice[10];};unionperdataa,b;共同体定义共同体类型的同时说明共同体变量unionperdata{intclass;charoffice[10];}a,b;共同体直接说明union{intclass;charoffice[10];}a,b;共同体main(){Struct{charname[10];intage;charjob;union{intclass;charoffice[10];}depa;}body[2];intn,i;for(i=0;i<2;i++){printf("inputname,age,jobanddepartment\n");scanf("%s%d%c",body[i].name,&body[i].age,&body[i].job);if(body[i].job=='s')scanf("%d",&body[i].depa.class);elsescanf("%s",body[i].depa.office);}}枚举enum枚举名{枚举值表};enumweekday{sun,mon,tue,wed,thu,fri,sat};枚举也分三种说明方式enumweekday{sun,mon,tue,wed,thu,fri,sat};enumweekdaya,b;枚举也分三种说明方式enumweekday{sun,mon,tue,wed,thu,fri,sat}a,b;枚举也分三种说明方式enum{sun,mon,tue,wed,thu,fri,sat}a,b;枚举举例enum{sun,mon,tue,wed,thu,fri,sat}a,b;a=sun;b=tue;
本文档为【二级C语言:结构体和共同体】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
都绘匠人
国家注册城乡规划师,资深工程师,具备城乡规划领域多年从业经历
格式:ppt
大小:447KB
软件:PowerPoint
页数:28
分类:理学
上传时间:2022-04-19
浏览量:1