欢迎来到天天文库
浏览记录
ID:36293133
大小:357.50 KB
页数:177页
时间:2019-05-08
《c语言项目开发教程ppt第6章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章C语言的数据类型有基本数据类型和构造数据类型。基本数据类型提供了对单一数据的表达方式,利用数组可以表示由同类型的多个元素构成的复合对象,即把有限个相同类型的数据作为一个变量进行整体操作。但是在实际应用中,存在着很多更为复杂的对象,需要由多种不同类型的属性来描述,例如一个学生的信息包括学生学号、姓名、年龄、成绩等属性,且每一个属性的数据类型不同,这些不同的类型的数据共同构成一个整体学生,而如果每一个属性都用简单的变量来分别表示,则程序会变得比较松散、复杂,数据难以处理。为了解决类似这样的问题,C语言中允许用户自己定义一种数据类型,以整体的形
2、式来描述多个属性,即构造数据类型。构造数据类型又分为三种:结构体、共用体和枚举。应用这三种复杂数据类型,可以很容易地描述和构造不同的数据结构,并对这些数据进行比较方便的操作。任务6.1学生成绩排序—结构体 任务目标了解结构体的概念和使用范围。掌握结构体的声明、变量定义、初始化和引用方法。掌握结构体数组的使用方法。掌握结构体指针的使用方法。掌握结构体作为函数参数时的用法。掌握结构体类型函数的用法。用结构体实现学生成绩排序任务。6.1.1结构体1.结构体的声明程序的目的是解决客观世界中存在的问题,因此常常需要模拟客观世界中的事物或者概
3、念,如学生。在计算机中是如何表示一个学生或者其他事物的呢?首先要做的是找到这个事物中被关注的信息。比如在学生信息管理系统中,被关注的是学生的学号、姓名、年龄、性别、院系等信息,则在计算机中将这些信息表示出来,即可代表一个学生。但是不同的属性具有不同的数据类型,如学号为整型或者字符型、姓名为字符型、性别为字符型、学院为字符型、成绩为浮点型等,如表6-1所示。表6-1学生信息表学号(整型)姓名(字符串)出生日期(整型)性别(字符型,m为男,f为女)院系(字符串)20120601李雷19880423男(0)计算机学院20120602韩梅梅19
4、890512女(1)计算机学院20120603张红19890810女(1)计算机学院在之前的程序中,往往是用多个变量数组来分别表示学生的各个属性,但是这每一个变量之间显示不出关联性,也缺乏概念的整体性。如要查找一个学生的信息,则需要在多个变量数组中查询;要对学生进行排序,就必须对每一个变量数组都进行同样的元素交换。而这些信息也无法用二维数组来存放,因为二维数组中每一个元素的类型和长度都必须相同。那么能否将这些属性作为一个完整的类型存放呢?C语言中规定了一种新的数据类型,即结构体,来表示类型不同但是可以作为一个整体的逻辑相关的多个变量。结构体(s
5、tructures)是一种由其他数据类型组合而成的新的数据类型。结构体具有组合的形式,也包含了分析的内涵,是建立在对实际数据对象分析的基础上,利用已有的数据类型重新组建而成的用户自定义数据类型。结构体在使用之前必须对其类型名和数据类型进行声明,也就是声明结构体类型的名称以及构成它的每一个成员的名称和类型。结构体声明的一般形式如下:struct结构体名{数据类型成员1;数据类型成员2;数据类型成员n;};关键字struct表示定义的类型为结构体类型。在结构体中,可以声明若干个成员,每一个成员都是该结构体的一个组成部分。对每一个成员都要
6、做单独的类型说明,每个成员的数据类型都可以不同。成员列表不可以为空。注意,大括号后面的分号是不可省略的,表明结构体声明的结束。例如,定义一个学生的结构体:structstudent{intno;//学号charname[20];//姓名intbirthday;//出生日期charsex;//性别charmajor[20];//院系};在C语言中,结构体的声明是可以嵌套的。例如对于学生的出生日期,可以用整型数据来表示,也可以将日期中的年、月、日分开,用结构体来表示,例如:structdata{intyear;intmonth
7、;intday;};则此时student结构体可以定义为:structstudent{intno;charname[20];structdatabirthday;charsex;charmajor[20];};其中birthday的类型为结构体data,同时又是结构体student中的一个成员,构成结构体的嵌套声明。一般把结构体的声明放在文件的最前面,也可以放在头文件内。若在函数内部声明一个结构体,在函数外则无法使用这个结构体。一个结构体中的成员是另外一个结构体类型时,必须将使用的结构体的声明放在前面。同一个结构体中的成
8、员是不可以重复的,但是不同结构体的成员可以重复。结构体成员和其他变量可以重名,它们代表不同的含
此文档下载收益归作者所有