欢迎来到天天文库
浏览记录
ID:37924580
大小:175.00 KB
页数:101页
时间:2019-06-02
《计算机本科c语言第十一章讲》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第十一章结构体与共用体重点:1、结构体与联合体的概念2、结构体定义、结构体变量的定义与引用3、枚举类型的概念已讲过的数据类型有:简单类型:整型、实型、字符型。变量与变量之间无固定的内在连续,分别表示独立的数据,无从属关系。数组型:同一类型数据的组合,并用下标把数组的各元素有序地联系起来,指针型:主要用于动态存储分配。结构体:用结构体,用户可以根据需要定义一种数据类型,这种数据类型是由C语言中基本数据类型或用户已定义的数据类型组成的“复合类型”。将不同类型的数据组合成一个有机的整体,以便于引用。这些组合在一个整体中的数据是互相联系的。例如,一个人的姓名、性别、年龄、家庭地址等项。这些项都与某一
2、个人相联系,应当把它们组织成一个组合项,在一个组合项中包含若干个类型不同(当然也可以相同)的数据项。C语言提供了这样一种数据结构,它称为结构体(structure)。它相当于其它高级语言中的“记录”。例如:上面讲的,由不同类型的数据项组成的复合类型,可以定为如下结构structperson{charname[20];intage;charsex;longnum;charnation;成员名inteducation;charaddrees[20];longtel;};共占54字节上面定义了一个结构体类型,structperson(struct是关键字,不能省略),表示这是一个“结构体类型”。它
3、包括name,age,address等不同类型的数据项。应当注意:structperson是程序设计者自己定义的类型名。它和系统已定义了的标准类型(如int、char、float、double等)一样可以用来作为定义变量的类型。定义一个结构体类型的一般形式为:struct结构体名{成员表列};花括弧内是该结构体中的各个成员(或称分量),由它们组成一个结构体。例如,上例中的name,sex等都是成员。对各成员都应进行类型说明,即类型标识符成员名也可以把“成员表列”称为“域表”。结构体的定义明确地描述了该结构的组织形式,在程序执行时,结构体的定义并不引起系统为该结构分配内存空间,结构体的定义仅仅
4、定义了一种特定的数据类型,它制定了这种构造使用内存的模式,这是一种数据类型的定义,并不是变量的定义。11.2定义结构体类型变量的方法要定义一个结构体类型的变量,可以采取以下三种方法。一、先定义结构体类型再定义变量名如上面已定义了一个结构体类型structperson,可以用它来定义变量。如structpersonperson1,person2;定义person1和person2为structperson类型变量,即它们具有structperson类型的结构。如图所示。student1ZhangXinM19……student2WangLIF20……应当注意:将一个变量定义为标准类型(基本数据类
5、型)与定义为结构体类型不同之处在于:后者不仅要求指定变量为结构体类型,而且要求指定为某一特定的结构体类型(例如,structperson),不能只指定为“struct型”而不指定结构体名。而在定义变量为整型时,只需指定为int型即可。换句话说,可以定义许多种具体的结构体类型。为了使用方便,人们通常用一个符号常量代表一个结构体类型。在程序开头,用#definePERSONstructperson这样在程序中,PERSON与structperson完全等效。PERSON{charname[20];intage;charsex;longnum;charnation;inteducation;cha
6、raddrees[20];longtel;};可以直接用PERSON定义变量。如PERSONperson1,person2;用这种方法定义变量和用int,float定义变量的形式相仿,不必再写关键字struct.如果程序规模比较大,往往将对结构体类型的定义集中放到一个文件(以·h为后缀的“头文件")中。哪个源文件需用到此结构类型则可用#include命令将该头文件包含到本文件中。这样做便于装配,便于修改,便于使用。二、在定义类型的同时定义变量例如:structstudent{intnum;charname[2];charsex;intage;floatscore;charaddr[30];}
7、student1,student2;它的作用与前面定义的相同。既定义了两个structstudent类型的变量student1,student2.这种形式的定义的一般形式为:struct结构体名{成员表列}变量名表列;三、直接定义结构类型变量其一般形式为:struct{成员表列;}变量名表列;即不出现结构体名。关于结构体类型,有几点要说明:1.类型与变量是不同的概念,不要混同。对结构体变量来说,在定义时一般先
此文档下载收益归作者所有