文档详情

第8章构造数据类型.pptx

发布:2021-11-02约5.61千字共34页下载文档
文本预览下载声明
第8章 构造数据类型060405030102 结构体 结构体与函数自定义数据类型结构体数组枚举类型共用体1 结 构 体结构体定义结构体的定义如下:struct结构体类型名{ 成员类型 成员名; …… 成员类型 成员名;};例如:定义一个简单员工信息的结构体。struct PersonInfo{ int index; char name[30]; short age; };结构体变量结构体是一个构造类型,前面只是定义了结构体,形成一个新的数据类型,还需要使用该数据类型来定义变量。结构体变量有两种声明形式。第一种声明形式是在定义结构体后,使用结构体类型名声明。例如:另一种是定义结构体时直接声明,例如:struct PersonInfo{ int index; char name[30]; short age; } pInfo;struct PersonInfo{ int index; char name[30]; short age; };PersonInfo pInfo;结构体成员及初始化引用结构体成员有两种方式,一种是声明结构体变量后,通过成员运算符“.”引用,一种是声明结构体指针变量,使用指向“-”运算符引用。(1)使用成员运算符“.”引用结构体成员,一般形式如下:结构体变量名.成员名例如:struct PersonInfo{ int index; char name[30]; short age; } pInfo;pInfo. indexpInfo. namepInfo.age(2)在定义结构体时,可以同时声明结构体指针变量,例如:struct PERSONINFO{ int index; char name[30]; short age; }*pPersonInfo;如果要引用指针结构体变量的成员,需要使用指向“-”运算符。一般形式如下:结构体指针变量-成员名例如:pPersonInfo- indexpPersonInfo- namepPersonInfo- age结构体的嵌套定义完结构体后就形成一个新的数据类型,C++语言在定义结构体时可以声明其他已定义好的结构体变量,也可以在定义结构体时定义子结构体。(1)在结构体中定义子结构体struct PersonInfo{ int index; char name[30]; short age; struct WorkPlace { char Address[150]; char PostCode[30]; char GateCode[50]; char Street[100]; char Area[50]; };};(2)在定义时声明其他已定义好的结构体变量struct WorkPlace{ char Address[150]; char PostCode[30]; char GateCode[50]; char Street[100]; char Area[50];};struct PersonInfo{ int index; char name[30]; short age; WorkPlace myWorkPlace;};结构体大小结构体是一种构造的数据类型,数据类型都与占用内存多少有关。在没有字符对齐要求或结构成员对齐单位为1时,结构体变量的大小是定义结构体时各成员大小之和。例如PersonInfo结构体:struct PersonInfo{ int index; char name[30]; short age;};PersonInfo结构体的大小是成员name、成员index和成员age大小之和。成员name是字符数组,一个字符占用1个字节,name成员占用30个字节,成员index是整型数据,在32位系统中占4个字节,age是短整型,在32位系统中占2个字节,所以PersonInfo结构体的大小是30+4+2=36字节。2 结构体与函数结构体变量作函数参数可以把结构体变量当普通变量一样作为函数参数,这样可以减少函数参数的个数,使代码看起来更简洁。使用结构体变量做函数参数结构体指针作函数参数使用结构体指针变量做函数参数时传递的只是地址,减少了时间和空间上的开销,能够提高程序的运行效率。这种方式在实际应用中效果比较好。 使用结构体指针变量做函数参数3 结构体数组结构体数组声明与引用(1)在定义结构体时直接声明struct PersonInfo{ int index; char name[30]; short age;}Person[5];(3)直接声明结构体数组struct { int index; char name[30]; short age;}Person[5];可以在声明结构体数组时直接对数组进行初始化。struct PersonIn
显示全部
相似文档