C语言程序设计课件第9章使用结构体类型处理组合数据.ppt
《C语言程序设计课件第9章使用结构体类型处理组合数据.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计课件第9章使用结构体类型处理组合数据.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言提供了一些由系统已定义好的数据语言提供了一些由系统已定义好的数据类型,如:整型、实型、字符型、指针等类型,如:整型、实型、字符型、指针等类型,类型,C语言还允许用户根据需要自己建语言还允许用户根据需要自己建立数据类型,用它来定义变量。立数据类型,用它来定义变量。第第9章章 使用结构体类型使用结构体类型处理组合数据处理组合数据-用户自定义数据类型用户自定义数据类型P2489.1 定义和使用结构体变量定义和使用结构体变量9.2 结构体数组结构体数组9.3 结构体指针结构体指针9.4 用结构体变量和结构体变量的指用结构体变量和结构体变量的指针作函数参数针作函数参数9.5 用指针处理链表用指针处
2、理链表9.1 定义和使用结构体变量定义和使用结构体变量9.1.1 自己建立结构体类型自己建立结构体类型9.1.2 定义结构体类型变量定义结构体类型变量9.1.3 结构体变量的初始化和引用结构体变量的初始化和引用P2489.1.1 自己建立结构体类型自己建立结构体类型P248用户自己建立由不同类型数据组成的组用户自己建立由不同类型数据组成的组合型的数据结构,它称为合型的数据结构,它称为结构体结构体例如,一个学生的学号、姓名、性别、例如,一个学生的学号、姓名、性别、年龄、成绩、家庭地址等项,是属于同年龄、成绩、家庭地址等项,是属于同一个学生的一个学生的,因此,因此组成一个组合数据,组成一个组合数据
3、,如如student_1的变量,反映它们之间的的变量,反映它们之间的内在联系内在联系struct student int num;char name20;char sex;int age;float score;char addr30;u由程序设计者指定了由程序设计者指定了一个结构体类型一个结构体类型struct Studentu它包括它包括num,name,sex,age,score,addr等不同类等不同类型的成员型的成员声明一个结构体类型的一般形式为:声明一个结构体类型的一般形式为:struct 结构体名结构体名 成员表列成员表列 ;类型名类型名 成员名成员名;说明:说明:(1)结构体类
4、型并非只有一种,而是可以设结构体类型并非只有一种,而是可以设计出许多种结构体类型,例如计出许多种结构体类型,例如struct teacherstruct workerstruct date等结构体类型等结构体类型u各自包含不同的成员各自包含不同的成员说明:说明:(2)成员可以属于另一个结构体类型。成员可以属于另一个结构体类型。struct date int month;int day;int year;struct student int num;char name20;char sex;int age;struct date birthday;char addr30;说明:说明:(2)成员可
5、以属于另一个结构体类型。成员可以属于另一个结构体类型。num name sex agebirthdayaddrmonth day year9.1.2 定义结构体类型变量定义结构体类型变量P250前面只是建立了一个结构体类型,它相当前面只是建立了一个结构体类型,它相当于一个模型,并没有定义变量,其中并无于一个模型,并没有定义变量,其中并无具体数据,系统对之也不分配存储单元。具体数据,系统对之也不分配存储单元。相当于设计好了图纸,但并未建成具体的相当于设计好了图纸,但并未建成具体的房屋。为了能在程序中使用结构体类型的房屋。为了能在程序中使用结构体类型的数据,应当定义结构体类型的变量,并在数据,应当
6、定义结构体类型的变量,并在其中存放具体的数据。其中存放具体的数据。1.先声明结构体类型,再定义该类型变量先声明结构体类型,再定义该类型变量声明结构体类型声明结构体类型struct student,可以可以用它来定义变量用它来定义变量 struct student student1,student2;结构体类型名结构体类型名结构体变量名结构体变量名 1.先声明结构体类型,再定义该类型变量先声明结构体类型,再定义该类型变量声明结构体类型声明结构体类型struct student,可以可以用它来定义变量用它来定义变量 struct student student1,student2;10001 Zh
7、ang Xin M 19 90.5 Shanghaistudent110002Wang LiF 2098Beijingstudent22.在声明类型的同时定义变量在声明类型的同时定义变量struct student int num;char name20;char sex;int age;float score;char addr30;student1,student2;3.不指定类型名而直接定义结构体类型变量不指定类型名而直接定义结构体类型变量其一般形式为其一般形式为:struct 成员表列成员表列 变量名表列变量名表列;指定了一个无名的结构体类型指定了一个无名的结构体类型。说明:说明:(1
8、)结构体类型与结构体变量是不同的概结构体类型与结构体变量是不同的概念,不要混同。只能对变量赋值、存取或念,不要混同。只能对变量赋值、存取或运算,而不能对一个类型赋值、存取或运运算,而不能对一个类型赋值、存取或运算。在编译时,对类型是不分配空间的,算。在编译时,对类型是不分配空间的,只对变量分配空间。只对变量分配空间。(2)结构体类型中的成员名可以与程序中的结构体类型中的成员名可以与程序中的变量名相同变量名相同,但二者不代表同一对象。但二者不代表同一对象。(3)对结构体变量中的成员(即对结构体变量中的成员(即“域域”),),可以单独使用,它的作用与地位相当于普可以单独使用,它的作用与地位相当于普
9、通变量。通变量。9.1.3 结构体变量的初始化和引用结构体变量的初始化和引用 例例9.1 把一个学生的信息放在一个结构体把一个学生的信息放在一个结构体变量中,然后输出这个学生的信息。变量中,然后输出这个学生的信息。解题思路:解题思路:u先在程序中自己建立一个结构体类型,包括先在程序中自己建立一个结构体类型,包括有关学生信息的各成员有关学生信息的各成员u然后用它来定义结构体变量,同时赋以初值然后用它来定义结构体变量,同时赋以初值u最后输出该结构体变量的各成员最后输出该结构体变量的各成员P91#include void main()struct student int num;char name2
10、0;char sex;char addr20;student1=10101,“Li Lin”,M,“123 Beijing Road”;printf(NO.:%dnname:%sn sex:%cnaddress:%sn,student1.num,student1.name,student1.sex,student1.addr);#include void main()struct student int num;char name20;char sex;char addr20;student1=10101,“Li Lin”,M,“123 Beijing Road”;printf(NO.:%dn
11、name:%sn sex:%cnaddress:%sn,student1.num,student1.name,student1.sex,student1.addr);#include void main()struct student int num;char name20;char sex;char addr20;student1=10101,“Li Lin”,M,“123 Beijing Road”;student1.num=10010;对对printf(“%sn”,student1);不对不对#include void main()struct student int num;char
12、name20;char sex;char addr20;student1=10101,“Li Lin”,M,“123 Beijing Road”;struct date birthday;student1.num=10010;对对student1.birthday.month=11;对对#include void main()struct student int num;char name20;char sex;char addr20;student1=10101,“Li Lin”,M,“123 Beijing Road”;student2.num=student1.num;对对sum=stu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课件 使用 结构 类型 处理 组合 数据
限制150内