C语言第7章全解.ppt

C语言第7章全解

第7章 结构体 从基本数据类型、复合数据类型到抽象数据类型 计算机本身是没有数据类型的概念的 内存里存储的内容,你认为它代表什么,它就代表什么 高级语言设计了基本数据类型:整型、浮点型、字符型等。不同的语言也会定义不同的基本类型 基本数据类型并不能方便地解决所有问题 复合数据类型是基本数据类型迭代派生而来 典型的代表:“结构”、数组、指针 抽象数据类型(ADT)在复合数据类型的基础上增加了对数据的操作,进而进化为“类” 这是一个跨时代的进步 思考一个问题 在程序里怎么表示一个人(姓名、年龄、性别、……) 想表示多个人呢? 如何用计算机程序实现下述表格的管理? 数组的解决方法 int studentId[30] = {1,2,3,4,5,6}; char studentName[30][10] = {{令狐冲},{林平之}, {岳灵珊},{任莹莹}}; char studentSex[30][2] = {{男},{男},{女},{女}}; int timeOfEnter[30] = {1999,1999,1999,1999}; int scoreComputer[30] = {90,78,89,78}; int scoreEnglish[30] = {83,92,72,95}; int scoreMath[30] = {72,88,98,87}; int scoreMusic[30] = {82,78,66,90}; 数组的解决方法 数据的内存管理方式 数组的解决方法 分配内存不集中,寻址效率不高 对数组进行赋初值时,容易发生错位 结构显得比较零散,不容易管理 希望的内存分配图 结构体的解决方法 struct STUDENT { int studentID; /*每个学生的序号*/ char studentName[10];/*每个学生的姓名*/ char studentSex[4]; /*每个学生的性别*/ int timeOfEnter; /*每个学生的入学时间*/ int scoreComputer; /*每个学生的计算机原理成绩*/ int scoreMusic; /*每个学生的音乐成绩*/ }; struct STUDENT是一个数据类型 struct STUDENT students[30]; //定义该类型的一个数组 students[0].studentName students[0].Sex //找到第0个元素的两个成员,它们都是变量,一般称为结构的成员变量 第7章 结构体 结构体类型的定义 结构体是一种构造数据类型,它由若干相同或不同数据类型的成员组成。每一个成员既可以是一个基本数据类型也可以是一个构造数据类型 结构体类型的定义 结构体嵌套定义 7.1.2 结构体变量 (1) 结构体变量的定义 ①先定义结构体类型,再声明结构体变量。其一般形式为: struct student { char cNum; char cName[20]; int nAge; char cSex; }; struct student sStu; ②定义结构体类型的同时定义结构体变量。其一般形式为: ③直接定义无结构名的结构体类型变量 如, struct{ char cNum; char cName[20]; int nAge; char cSex; } sStu ; (2) 结构体变量的初始化 以上三种方式声明结构体变量的同时都可以进行初始化。 struct student { char cNum; char cName[20]; int nAge; char cSex; }; struct student sStu = { 1,Zhanghua,20,M}; (2) 结构体变量的初始化 struct student { char cNum; char cName[20]; int nAge; char cSex; }sStu = { 1,Zhanghua,20,M}; (2) 结构体变量的初始化 struct { char cNum; char cName[20]; int nAge; char cSex; } sStu = { 1,Zhanghua,20,M}; (3) 结构体变量成员的引用 形式如下: 结构体变量名.成员名 实心点“.

文档评论(0)

1亿VIP精品文档

相关文档