结构体与共用体

结构体与共用体

ID:44138879

大小:112.50 KB

页数:39页

时间:2019-10-19

结构体与共用体_第1页
结构体与共用体_第2页
结构体与共用体_第3页
结构体与共用体_第4页
结构体与共用体_第5页
资源描述:

《结构体与共用体》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第八章结构体与共用体【教学要求】1.理解结构体的含义。2.掌握结构体类型变量的定义方法。3.掌握结构体类型变量的引用方法。4.掌握结构体类型变量如何在定义的同时初始化。5.理解共同体的含义,掌握共同体类型变量的定义方法。6.了解结构体数组的定义和数组元素的引用。7.了解指向结构体类型数据的指针的概念及使用。8.了解链表结点的结构形式,链表的基本操作。9.了解枚举类型的定义,及枚举类型的输入输出。10.了解TYPEDEF的作用。第八章结构体与共用体结构体(struct)共同体(union)结构体与共用体小结枚举类型(enum)typedef定义类型结构体(struct)结构体的概

2、念结构体数组结构体指针结构体的概念结构体的定义结构体变量的存储特点结构体变量的引用结构体的初始化结构体的定义1、含义:不同类型数据的集合。2、功能:用于描述一个“概念”。(或记录)如:numnamesexagescoreaddr10010LiFunM1887.5BeiJing3、定义方法:方法一:在定义结构体类型的同时,直接给出结构体变量。如:struct结构体名{结构体成员变量的定义;}变量名1,变量名2,...,变量名n;方法二:先给出结构体类型的定义,再定义结构体变量。如:struct结构体名{结构体成员变量的定义;例:};struct结构体名变量名1,变量名2,...,

3、变量名n;4、要点:方法二:structstudent{intnumber;charname[20];charsex;intage;floatscore;charaddr[30];};structstudentstudent1,student2;方法一:structstudent{intnumber;charname[20];charsex;intage;floatscore;charaddr[30];}student1,student2;请注意两种方法的不同特点:1、“;”的用法;2、方法二可以用一个*.h文件来存储结构体的定义。4、要点:结构体名(struct):用于标识一

4、种新的数据类型,即结构体类型,可以省略。注意区分结构体类型与基本数据类型的不同,它是复合数据类型。结构体成员变量与普通变量的定义一样,它还可以是结构体变量。structdate{intmonth,day,year;};structstudent{intnum;charname[20];charsex;intage;structdatebirthday;charaddr[30];}student1,student2;结构体变量的存储特点如:structstudent{intnumber;charname[5];charsex;intage;floatscore;charaddr[

5、10];}student1,student2;structstudent所占存储空间的大小为:各成员变量所占存储单元字节数之和。sizeof(student)student1.numberstudent1.name[0]...student1.name[4]student1.sexstudent1.agestudent1.scorestudent1.addr[0]...student1.addr[9]student2.numberstudent2.name[0]...student2.name[4]student2.sex...student1student2结构体类型变量的引

6、用一、原则:通过结构体的成员来引用结构体变量。二、成员的引用方法为:结构体变量名.成员名三、要点:1.结构体变量不能整体输入输出,只能对它的成员进行操作.如:student1.num;2.如果成员本身又是一个结构体类型,则要使用若干个成员运算符,逐级找到最底层的成员.如:student1.birthday.day3.成员变量可以象一般的变量一样进行各种运算,只是在运算时要加上“.”运算符.4.可以引用成员的地址.结构体变量的初始化一、只可以给主函数中或外部存储类别和静态存储类别的结构体变量、数组赋初值。1、对外部存储类型的初始化.2、对静态存储类型的结构体变量进行初始化二、给结

7、构体变量赋初值不能跨越前面的成员而只给后面的成员变量赋值。例exp8_1:对外部存储类型的初始化.structstudent{longnumber;charname[20];charsex;intage;floatscore;charaddr[30];}a={99641,”LiPing”,’M’,”56TianjinStreet”};main(){printf(“No.:%ldname:%ssex:%caddress:%s”,a.num,a.name,a.sex,a.addr

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

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

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