【文档说明】C++程序设计学习培训(课件)-自定义数据类型.ppt,共(18)页,480.500 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-44707.html
以下为本文档部分文字说明:
自定义数据类型自定义数据类型枚举类型7.1结构体7.2结构体与函数7.3结构数据与结构指针7.4学习目标通过本章的学习,同学们能够:学会使用复合数据类型;会使用枚举类型及应用场合;掌握结构体的用法;7.1枚举类型内容C++中有一种数据类型称为枚举(Enumeration)类型,
它允许用户自己来定义一种数据类型,并且列出该数据类型的取值范围。我们说变量就好像是一个箱子,而数据类型就好像是箱子的类型,所以我们在创建某个枚举类型的变量的时候,必须先把这个枚举类型设计好,即把箱子的类型设计好。定义枚举类型的语法格式为:enu
m类型名{常量1[,常量2,……常量n]};7.2结构体我们把变量比作为箱子。在现实生活中,如果小箱子太多太杂乱了,我们会拿一个大收纳箱来,把小箱子一个个有序地放到收纳箱里面。这样一来,在我们视线里的箱子就变少了,整理起来也会比较方便。那么,我们能否把这么
多凌乱的变量整理到一个变量当中呢?C++中有一种数据类型称为结构(Structure)类型,它允许用户自己定义一种数据类型,并且把描述该类型的各种数据类型一一整合到其中。学生学号--整型姓名--字符串年龄--整型院系--字符串平均成绩--浮点型
定义一种结构类型的语法格式为:struct结构类型名{数据类型成员数据1;数据类型成员数据2;……数据类型成员数据n;};和定义枚举类型类似,定义结构类型的位置必须在首次使用该类型名之前,否则程序将无法正确识别该类型。要注意,定义完结
构类型后的分号是必不可少的,否则将会引起错误7.3结构体与函数结构体也可以用作函数参数或返回值。7.3.1结构作为参数我们在前面的一些章节中知道,变量作为函数的参数,了解它是值传递还是地址传递是非常重要的。因为这意味着参数在函数体内的修改是否会影响到该变量本身。不同
于数组,结构是按值传递的。也就是说整个结构的内容都复制给了形参,即使某些成员数据是一个数组。如果我们希望能在函数修改实参,则可以使用引用的方法。由于结构往往整合了许多的成员数据,它的数据量也绝对不可小觑。使用值传递虽然能够保护实参不被修改,但是却会或多或少地影响到程序的运行效率
。所以,一般情况下,我们选择引用传递的方法7.3.2结构作为返回值一般情况下,函数只能返回一个变量。如果要尝试返回多个变量,那么就要通过在参数中使用引用,再把实参作为返回值。然而,这种方法会导致一大堆参数,程序的可读性也较差。当结构出现以后,我们可以把
所有需要返回的变量整合到一个结构中来,问题就解决了结构是一种数据类型,因此它也有对应的结构数组和指向结构的指针。7.4结构数组与结构指针定义结构数组和定义其他类型的数组在语法上并无差别。需要注意的是,在定义结构数组之前,我们必须先定义好
这个结构7.4.1结构数组7.4.2结构指针在上一章我们了解到指针的一个重要作用就是实现内存的动态分配(堆内存)。待我们学完了这一章,我们会发现结构指针也是一个非常有用的工具。所谓结构指针就是指向结构的指针。定义好一个结构之后,定义一个结构指针变量的结
构类型名*指针变量名;我们知道一般的指针是通过间接引用操作符“*”来访问它指向的变量。那么我们如何访问结构指针所指向的变量的成员数据呢?这里要介绍箭头操作符“->”,我们用它可以访问到指针指向的变量的成员数据。它的格式为:指针变量名->
成员数据需要注意的是,箭头操作符的左边一定是一个结构指针,而成员操作符的左边一定是一个结构变量,两者不能混淆使用。本章小结C++提供了许多种基本的数据类型(如int、float、double、char等)供用户使用。但是由于程序需要处理的问题往往比较复杂,而且呈多样
化,已有的数据类型显得不能满足使用要求。因此C++允许用户根据需要自己声明一些类型,例如第5章介绍的数组就是用户自己声明的数据类型。此外,用户可以自己声明的类型还有结构体类型、共用体类型、枚举类型、类类型等,这些统
称为用户自定义类型。用户自定义数据类型是对基本数据类型的扩充,正是有了结构体数据类型的应用,才有了类的定义,使得C语言有长足发展。同学们通过对这些简单扩充数据类型的学习,为后面学习类类型打好基础。