《复合数据类型》PPT课件.ppt

《复合数据类型》PPT课件.ppt

ID:51645292

大小:383.31 KB

页数:34页

时间:2020-03-27

《复合数据类型》PPT课件.ppt_第1页
《复合数据类型》PPT课件.ppt_第2页
《复合数据类型》PPT课件.ppt_第3页
《复合数据类型》PPT课件.ppt_第4页
《复合数据类型》PPT课件.ppt_第5页
资源描述:

《《复合数据类型》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章复合数据类型第8章复合数据类型8.1结构类型8.4枚举类型8.3位段结构类型8.2联合类型8.5类型定义(typedef)复合类型(构造类型)由基本类型按一定的规律组合而成C语言的复合数据类型包括数组结构类型联合类型枚举型位段8.1结构类型(struct)一.结构类型的定义1.结构类型定义的一般格式struct结构标识符{数据类型成员1;数据类型成员2;:数据类型成员n;};例:structstudent{charname[20];intage;floatscore;};关于结构类型定义的几点说明:1)一个结构类型可以包括若干个数据项,每个数据项都有一种数据类型,称为结构成员。2)结构

2、的成员可以与程序中其它变量同名,也可以和另一个结构类型的成员同名。3)结构类型定义的位置,可以在函数内部,也可以在函数外部,其作用域也与其定义的位置有关。结构类型有全局和局部之分。2.结构(变量)、结构数组、结构指针的定义(1)直接定义(常用):即在定义结构类型的同时定义;例:structemployee{charnumber[5];charname[10];intage;floatwage;}emp1,emp2[10],*emp3;(2)间接定义(常用):先定义结构类型,然后定义结构(变量);例:structemployee{charnumber[5];charname[10];intag

3、e;floatwage;};structemployeeemp1,emp2[10],*emp3;(3)一次性定义(不常用):在定义结构类型的同时定义结构,但结构类型无类型名。例:struct{charnumber[5];charname[10];intage;floatwage;}emp6,emp7[10],*emp8;3.嵌套结构和递归结构(1)嵌套结构:一个结构的某些成员也是结构类型例:structdate{intyear;intmonth;intday;};structemployee{charname[20];structdatebirthday;floatsalary;};(2)递

4、归结构一个结构的某些成员与该结构属于同一类型例:structnode{intdate;structnode*next;}4.结构的存储分配一个结构变量的所有成员在内存中占用连续的存储单元例:structdate{intyear;intmonth;intday;};structemployee{charname[10];structdatebirthday;floatsalary;}p;pp.name(10字节)p.birthday.year(2字节)p.birthday.month(2字节)p.birthday.day(2字节)p.salary(4字节)二.结构成员的访问结构成员访问的一般格

5、式:结构名.成员名用指针访问结构成员:指针名->成员名(*指针名).成员名运算符“->”和“.”都是访问结构成员运算符,并同处于最高优先级,结合性也都是从左到右。例:structxy{intx;floaty;}a,b,*c=&b,d;a.x=7;a.y=3.6;c->x=a.x;(*c).y=a.y;d=b;例:structdate{intyear;intmonth;intday;};structemployee{charname[20];structdatebirthday;floatsalary;};嵌套结构成员的访问:例:structemployeep;strcpy(p.name,"z

6、hangsan");p.salary=850;p.birthday.year=1960;p.birthday.month=12;p.birthday.day=25;三.结构成员的初始化即:在定义结构变量的同时为每个成员赋初始化。方法同数组例:structxy{intx;floaty;}z={7,3.6};使用说明:除初始化外,不允许使用赋值语句直接对整个结构赋值。但可以将一个结构直接赋值给另外一个同类型的结构。例:structxya,b;a={10,1.5};(错)a.x=10;a.y=1.5;(对)b=a;(对)例1.下列程序的运行结果是.main(){structnode{intx;in

7、ty;}n1,n2,n3;structnode*p,*q,*s;p=&n1;q=&n2;s=&n3;p->x=2;p->y=9;q->x=4;q->y=7;s->x=p->x*q->x;s->y=p->y+q->y;printf(“t%dt%d",s->x,s->y);}816#includestructsample{intnum;charcolor[10];};main(){str

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

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

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