结构体和共用体1

结构体和共用体1

ID:37544914

大小:828.31 KB

页数:97页

时间:2019-05-12

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

《结构体和共用体1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、本章学习C语言的三种数据类型(构造类型):结构体类型,共用体类型,枚举类型。第7章结构体与共用体第7章结构体与共用体7.1结构体类型和结构体类型变量7.2结构体数组7.3指向结构体类型数据的指针7.4内存的动态分配与单链表7.5共用体7.6位段7.7枚举类型7.8typedef语句7.1结构体类型和结 构体类型变量7.1.1结构体类型及其定义7.1.2结构体类型变量的定义7.1.3结构体类型变量及其成员的引用7.1.4结构体变量的初始化7.1.1结构体类型及其定义数组属于构造类型,数组中的各元素必须属于同一个数据类型。但是在实际生活中,我们经常会遇到有若

2、干各不同类型的数据组合成一个有机的整体。这些组合在一个整体中的数据是互相联系的。例如,要描述一个学生的相关信息:numnamesexbirthdayscoretel04010538LiulihuaF83/05/2880.57890.585583173C语言允许用户自己指定这样一种包含若干个类型不同(当然也可以相同)的数据项的数据结构,它称为结构体(structure)。组成结构体的数据项成为结构体成员。在其他高级语言中称其为“记录”。结构体是一种构造数据类型,其用途是把不同类型的数据组合成一个整体,当作一个新的数据类型来使用。在C语言中,用如下方式定义s

3、tructstudent{charnum[10];charname[20];charsex;charbirthday[8];floatscore[3];chartel[12];};声明结构体类型时所必须使用的关键字结构体类型的名称结构体成员列表,包括每个结构体成员的类型及名称分号不可少在structstudent类型起作用的范围内,structstudent和系统提供的标准类型(如int、char、float、double等)一样具有同样的地位和作用,都可以用来定义变量的类型。定义一个结构体类型的一般形式为:struct结构体名{类型标识符成员1;类型标

4、识符成员2;…类型标识符成员n;};成员的类型可为除该结构体类型外的任何一种类型,如基本类型、指针类型和结构体类型。若定义结构体类型structdate如下:structdate{intyear;intmonth;intday;};则结构体类型structstudent中的成员birthday就可定义为structdatebirthday;这样birthday是结构体类型structdate的变量。三种形式的定义方法,分别是:7.1.2结构体类型变量的定义1.先声明结构体类型再定义结构体变量,一般形式是:struct结构体名变量名表;如structstu

5、dentstud1,stud2;structdatedate_1;定义了3个结构体类型的变量stud1,stud2和date_1,前两个是structstudent类型的结构体变量,后者是structdate类型结构体变量。2.在声明结构体类型的同时定义变量,一般形式是:struct结构体名{成员表列}变量名表;如:structdate{intyear;intmonth;intday;}date_2,dd;同样可定义date_2,dd为structdate类型的变量。3.直接定义结构体类型变量,其一般形式为:struct{成员表列;}变量名表;即不出现结

6、构体名。如struct{charnum[10];charname[20];charsex;structdatebirthday;floatscore[3];chartel[12];}stud3,stud4;定义了2个结构体类型的变量stud3,stud4。由于结构体类型的变量是一种构造类型的变量,可引用的对象有两个:变量名代表变量的整体,成员名代表变量的各个成员,二者均可在程序中引用。引用时注意以下规则:7.1.3结构体类型变量及其成员的引用1.变量成员的引用方法(成员运算符“.”):如前例在结构体类型structstudent下定义的两个变量stud1

7、,stud2,二变量中的每个成员均可引用,且所引用的成员变量与其所属类型的普通变量一样可进行该类型所允许的任何运算。例如:aver=(stud1.score[0]+stud1.score[1]+stud1.score[2])/3;strcpy(stud2.name,"Wangzhe");stud2.score[1]=stud1.score[1];n=dd.year-date_1.year;date_1.year++;day=stud3.birthday.day--;scanf("%s%c%f",stud1.name,&studl.sex,&stud1.s

8、core[1]);printf("%d%d%d",dd.year,dd.mo

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

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

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