9.3 结构体(课件)-高二《程序设计基础》同步教学(人民邮电版)

2023-07-24
| 17页
| 121人阅读
| 11人下载
普通

内容正文:

9.3 结构体 9.3.1 定义结构体和结构体变量 9.3.2 结构体变量初始化 9.3.3 结构体变量成员的访问 在通讯录中,常常需要记录一个人的姓名、年龄、地址以及电话号码等资料。很明显,这些数据资料应该分别使用不同类型的数据进行表达,这时可以使用结构体这种新的数据类型来处理这些数据。 9.3.1 定义结构体和结构体变量 结构体与数组相似,也是一种复杂数据类型。不过与数组不同的是,数组中每个元素的数据类型是相同的,而结构体中的元素的数据类型可以不同,它可以根据用户的需要对每个元素的数据类型进行定义。这种由不同类型的数据构成的复杂数据类型,称为结构体。 1.结构体的定义 在正式使用结构体之前,应该首先对结构体的构成进行描述,这称为结构体的定义。结构体的定义用于说明: · 结构体中包含哪些数据元素; · 每个数据元素是什么数据类型。 在结构体中,每1个数据元素称为结构体的1个数据成员。 (1)结构体的定义格式 在结构体的定义中包含了各个数据成员的基本信息,它的一般形式为 struct 结构体名 { 数据类型1 成员名1; 数据类型2 成员名2; …… 数据类型n成员名n; }; (2)用法说明 关于结构体的定义做如下说明。 · “struct”为结构体类型定义的关键字,结构体名是此结构体的类型标识。 · 结构体名(例如data)也是一种标识符,因此其定义规则和变量名、数组名以及函数名相同。 · 结构体中的各成员必须用大括号括起来组成结构体的成员列表,结构体内的成员可以是一般数据类型(字符型、实型、整型等),也可以是复杂的数据类型(如数组等),还可以是结构体类型。 · 结构名后的大括号中包含的内容是结构体中包含的成员,一经定义后,结构体的构成就被固定下来了。 · 注意大括号后的分号不能遗漏。 · 结构体是一种特殊的数据类型,一旦用户定义一个结构名后,编译系统会将其同int,double,char等基本数据类型同等对待。 · 结构体仅仅描述一种数据组织格式,只是说明了这种结构所使用的“内存模式”,因此结构是抽象的。通过结构定义,主要说明在使用这种复杂数据类型时,这种数据占据内存的具体情况,取决于结构体包含的成员的数量以及对应的数据类型。 2.定义结构体变量 结构体的定义只是创建了一种新的数据类型(一种复杂数据类型),这种数据类型的地位与int,double等简单数据类型相同。 就像在使用整型变量时需要使用: int a; 定义一个具体的整型变量一样,也需要定义一个具体的结构体变量。 结构体变量是具体的,其中包含的每个成员都会被分配相应长度的存储空间,这些成员可以通过一定方法进行读写等操作。 (1)结构体变量的定义格式 结构体变量的定义格式为 struct 结构名 结构体变量名[={初值表}]; 例如: struct data data1,data2; 其中,struct为结构体的标识符,data为结构体名称,data1,data2为两个具体的结构体变量。 定义结构体变量后,该变量包含的所有成员就会被分配相应大小的存储空间。 (2)在定义结构体的同时也可以定义结构体变量 例如: struct data//定义结构体data { char name[20];//定义结构体成员变量 short age; char address[80]; float wage; }data1,data2;//定义结构体变量data1,data2 在定义结构体的同时定义了两个结构体变量data1和data2。 (3)在定义结构体时可以省略结构名 例如: Struct//定义省略结构名的结构体 { char name[20]; //定义结构体成员变量 short age; char address[80]; float wage; }wang,li,zhang;//定义结构体变量wang,li,zhang 这种定义方法简单明了,但是由于省略了结构名,在定义语句之外无法定义新的结构体变量。 (4)结构数组 仿照基本数据类型的用法,在定义结构体后,具有相同数据类型的结构体变量也可以组成结构数组。 结构数组的格式为 struct 结构名 结构数组名[元素个数]; 例如: struct data man[3]; 其中man[3]由man[0],man[1]和man[2]组成,每个元素都是以data为结构类型的结构体变量。 9.3.2 结构体变量初始化 初始化就是给结构体变量的每个成员赋初值。 结构体变量可以在定义的同时进行初始化,即使用一对大括号包围的初值表对结构体变量的每个成员赋值,其用法和数组类似。 例如: struct data wang={"wangwei",20,"建设路",2234.5}; 初始化

资源预览图

9.3  结构体(课件)-高二《程序设计基础》同步教学(人民邮电版)
1
9.3  结构体(课件)-高二《程序设计基础》同步教学(人民邮电版)
2
9.3  结构体(课件)-高二《程序设计基础》同步教学(人民邮电版)
3
9.3  结构体(课件)-高二《程序设计基础》同步教学(人民邮电版)
4
9.3  结构体(课件)-高二《程序设计基础》同步教学(人民邮电版)
5
9.3  结构体(课件)-高二《程序设计基础》同步教学(人民邮电版)
6
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。