文档详情

第10章_用户自定义数据类型.ppt

发布:2017-05-31约7.67千字共59页下载文档
文本预览下载声明
用户自己建立由不同类型数据组成的组合型的数据结构,它称为结构体。 定义一个结构体类型的一般形式为: struct 结构体名 { 类型标识符 成员1名字; 类型标识符 成员2名字; 类型标识符 成员3名字; … }; 其中,“{”和“}”之间的内容被称为成员表列。 10.2 结构体变量的使用 10.2.1 结构体变量的定义 10.2.2 结构体变量的引用 10.2.3 结构体变量的初始化 10.2.1 结构体变量的定义 前面只是建立了一个结构体类型,它相当于一个模型,并没有定义变量,其中并无具体数据,系统对之也不分配存储单元。 相当于设计好了图纸,但未建成具体的房屋。为了能在程序中使用结构体类型的数据,应当定义结构体类型的变量,并在其中存放具体的数据。 要定义一个结构体类型的变量,可以采取以下三种方法。 10.2.1 结构体变量的定义 说明: (1) 结构体类型与结构体变量是不同的概念,不要混同。只能对变量赋值、存取或运算,而不能对一个类型赋值、存取或运算。在编译时,对类型是不分配空间的,只对变量分配空间。 10.2.1 结构体变量的定义 (2) 对结构体变量中的成员(即“域”),可以单独使用,它的作用与地位相当于普通变量。 10.2.1 结构体变量的定义 (3) 成员可以属于另一个结构体类型。 struct date     { int month; int day; int year; };   struct Stu   { int num;char name[20]; char sex;int age; struct date birthday; char addr[30];   }; 10.2.1 结构体变量的定义 (3) 成员可以属于另一个结构体类型。 10.2.1 结构体变量的定义 (4)成员名可以与程序中的变量名相同,二者不代表同一对象。例如,程序中可以定义一个变量num,它与struct student中的num是两回事,互不干扰。 10.2.2 结构体变量的引用 在定义了结构体变量以后,可以引用这个变量。但应遵守以下规则: (1)不能将一个结构体变量作为一个整体进行输入和输出。 (2)结构体变量可以通过赋值运算符将其值赋给另一个相同类型的结构体变量,实现结构体变量中所有成员内容的复制。 10.2.2 结构体变量的引用 (3)如果成员本身又属一个结构体类型,则要用若干级成员运算符,一级一级地找到最低一级的成员。只能对最低级的成员进行赋值或存取以及运算。 (4)对成员变量可以像普通变量一样进行各种运算(根据其类型决定可以进行的运算)。 (5)可以引用成员的地址,也可以引用结构体变量的地址。 10.2.3 结构体变量的初始化 结构体变量也可以在变量定义时进行初始化,即在定义变量的同时给变量的成员赋值。 10.2.3 结构体变量的初始化 【例10.1】定义学生结构体类型student和两个student类型的变量student1和student2,对其初始化,并在主函数main中输出student1和student2。 解题思路:该题主要考察对组合结构体类型的定义和使用,包括结构体变量的初始化、赋值和输出,其中关键是如何访问结构体变量的成员。 10.3 结构体数组 10.3.1 结构体数组的定义 10.3.2 结构体数组的初始化 10.3.3 结构体数组的引用 10.3.1 结构体数组的定义 和定义结构体变量的方法相同,只需说明其为数组,可采用下列3种方法中的一种。 (1) struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }; student stu[3]; 10.3.1 结构体数组的定义 (2) struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; } stu[3]; 10.3.1 结构体数组的定义 (3) struct { int num; char name[20]; char sex; int age; float score; char addr[30]; } stu[3]; 10.3.1 结构体数组的定义 以上定义了一个数组,数组名为stu, 有3个元素,每个元素为student类型数据 10.3.1 结构体数组的定义 数组各元素在内存中
显示全部
相似文档