第9章结构体、共用体和枚举类型数据.ppt

第9章结构体、共用体和枚举类型数据.ppt

ID:58046391

大小:1.07 MB

页数:72页

时间:2020-09-04

第9章结构体、共用体和枚举类型数据.ppt_第1页
第9章结构体、共用体和枚举类型数据.ppt_第2页
第9章结构体、共用体和枚举类型数据.ppt_第3页
第9章结构体、共用体和枚举类型数据.ppt_第4页
第9章结构体、共用体和枚举类型数据.ppt_第5页
资源描述:

《第9章结构体、共用体和枚举类型数据.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第9章结构体、共用体和枚举类型数据9.1结构体类型数据9.2共用体类型数据9.3枚举类型数据9.4用TYPEDEF定义类型9.5动态存储分配——链表9.1结构体类型数据9.1.1.结构体的概念及其定义结构体概念“结构”是一种构造类型,它是由若干“成员”组成的。每一个成员可以是一个基本数据类型或者又是一个构造类型。结构既是一种“构造”而成的数据类型,在说明和使用之前必须先定义它,如同在说明和调用函数之前要先定义函数一样。结构体(structure)相当于其它高级语言中的“记录”。10010LiFu

2、nM87.518Beijingnumnamesexscoreageaddr结构体的定义定义一个结构的一般形式为:struct结构名 { 成员表列 };structstu { intnum; charname[20]; charsex; floatscore; };成员名的命名应符合标识符的书写规定。例如:对每个成员也必须作类型说明,其形式为:类型说明符成员名;9.1.2结构体类型变量的定义和引用1)先定义结构体类型再定义结构体变量例:structstudent{intnum;charname[2

3、0];charsex;intage;floatscore;charaddr[30];};structstudentx1,x2;则x1,x2为student结构型变量,x1,x2可存放student类型数据。类型标识符结构体变量定义:1、结构体类型变量的定义(方法有三)例:structstudent{intnum;charname[20];charsex;intage;charaddr[30];}x1,x2;{ 成员表列 }变量名表列;2)在定义结构体类型的同时定义变量:定义形式struct结构

4、体名定义形式struct{成员表列}变量名表列;不出现结构体类型名3.直接定义结构类型变量如:struct{intnumcharname[20];charsex;intage;charaddr[30];}x1,x2;1.类型名与变量名是不同的概念2.每一个成员的作用如同该类型的变量3.成员名与程序中的变量名可相同但意义不同几点说明:structdate{intmonth;intday;intyear;};补充:结构体的嵌套定义x1或x2numnamesexagebirthdaymonthdayy

5、earaddrstructstudent{intnum;charname[20];charsex;intage;structdatebirthday;charaddr[30];}x1,x2;2、结构体变量初始化结构的初始化就是指结构变量的初始化;先定义结构,在定义结构变量时对每个成员赋初值structstudentx1={8906,"LiMing",'M',85.5};如:structstudent{unsignedNo;charname[20];charsex;floatscore;};若x1

6、的起始地址为2000,则x1在内存中占有的存储单元为:共用27个字节的连续单元8906No2000200220212022name[20]LiMingM85.52023sexscore2026结构定义与变量定义及初始化合二为一:structexp{inta;floatb;charyn[8];}x={1234,56.7,"test"};但不能这样写:×structexp{inta=1234;floatb=56.7;charyn[8]="test";}x;如:x1为structstudent型

7、变量,则x1.No:表示x1的学号x1.name:表示x1的名字访问结构变量实质上是引用其成员;有两种运算符可访问结构成员1)圆点运算符3、结构体变量的引用注意:1.只能用变量的成员,不可用结构变量名直接运算。2.每一个成员的作用与其同类型的简单变量的引用相同。2)箭头运算符:例:structstudent{charname[10];charsex;intage;floatscore;charaddr[20];}x1;structstudentp;则p为结构指针变量,它可用来存放studen

8、t型变量的地址令p=&x1;则p为x1的首地址.namesexaddrpx1agescore访问结构成员:pname表示x1的姓名;等价于(*p).name或x1.namepage表示x1的年龄;等价于(*p).age或x1.age若有structstudenth;则:scanf("%s",&h);printf("%s",h);错误原因:结构体变量中包含有多个不同类型的数据项。正确方法:对结构体变量各成员的值进行输入/输出。如上例:scanf("%d%s",&h.num,&h.name);

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

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

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