构造数据类型.ppt
《构造数据类型.ppt》由会员分享,可在线阅读,更多相关《构造数据类型.ppt(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、构造数据类型现在学习的是第1页,共31页在实际问题中,一组数据往往具有不同的数据类型。例如,在学生登记表中:为更好地解决此类问题,语言采用构造数据类型,通过构造数据类型可以很好地将一些不同类型的数据作为一个整体进行处理。姓名:字符型;学号:整型或字符型;年龄:整型;性别:字符型;成绩:整型或实型。因为一个数组中只能存放同一种数据类型的数据,故不能用一个数组来存放这一组数据;如单独定义为互相独立的简单变量,难以反映它们之间的内在联系。现在学习的是第2页,共31页9.1 结构体结构体“结构”是一种构造类型,它是由若干“成员”组成的。每一个成员可以是一个基本数据类型,或者又是一个构造类型。结构体类型
2、的定义结构体变量的说明结构体变量的引用 结构体先定义,后使用现在学习的是第3页,共31页9.1 结构体结构体9.1.1结构类型定义和结构变量说明结构类型定义和结构变量说明 struct 结构体名 类型标识符 成员名;类型标识符 成员名;.;成员类型可以是基本数据类型或构造数据类型struct是关键字,不能省略合法标识符可省:无名结构体一、结构体的定义 现在学习的是第4页,共31页例 struct student int num;char name20;char sex;int age;float score;char addr30;namenumsexagescoreaddr4字节4字节20字
3、节1字节4字节30字节.结构体类型定义描述结构的组织形式,不分配内存n 结构是一种复杂的数据类型,是数目固定,类型不同的若干有序变量的集合。n 结构定义之后,即可进行变量说明。括号后的分号不可省现在学习的是第5页,共31页二、结构体变量说明(1)先定义结构体类型,再定义结构体变量一般形式:struct 结构体名 类型标识符 成员名;类型标识符 成员名;.;struct 结构体名 变量名表列;例#define STUDENT struct student STUDENT int num;char name20;char sex;int age;float score;char addr30;ST
4、UDENT stu1,stu2;例 struct student int num;char name20;char sex;int age;float score;char addr30;struct student stu1,stu2;现在学习的是第6页,共31页(2)定义结构体类型的同时定义结构体变量定义结构体类型的同时定义结构体变量一般形式:struct 结构体名 类型标识符 成员名;类型标识符 成员名;.变量名表列;例 struct student int num;char name20;char sex;int age;float score;char addr30;stu1,stu
5、2;现在学习的是第7页,共31页(3)直接定义结构体变量直接定义结构体变量一般形式:struct 类型标识符 成员名;类型标识符 成员名;.变量名表列;例 struct int num;char name20;char sex;int age;float score;char addr30;stu1,stu2;用无名结构体直接定义变量只能一次现在学习的是第8页,共31页w 说明结构体类型与结构体变量概念不同类型类型:不分配内存;变量变量:分配内存类型类型:不能赋值、存取、运算;变量变量:可以结构体成员名与程序中变量名可相同,不会混结构体可嵌套例 struct date int month;in
6、t day;int year;struct student int num;char name20;struct date birthday;stu;numnamebirthdaymonthdayyear例 struct student int num;char name20;struct date int month;int day;int year;birthday;stu;numnamebirthdaymonthdayyear现在学习的是第9页,共31页9.1.2 结构体变量的引用引用规则 结构体变量不能整体引用,只能引用变量成员可以将一个结构体变量赋值给另一个结构体变量结构体嵌套时逐级
7、引用引用方式:结构体变量名结构体变量名.成员名成员名例 struct student int num;char name20;char sex;int age;float score;char addr30;stu1,stu2;stu1.num=10;stu1.score=85.5;stu1.score+=stu2.score;stu1.age+;例 struct student int num;char name20;char sex;int age;float score;char addr30;stu1,stu2;printf(“%d,%s,%c,%d,%f,%sn”,stu1);()s
8、tu1=101,“Wan Lin”,M,19,87.5,“DaLian”;()例 struct student int num;char name20;char sex;int age;float score;char addr30;stu1,stu2;stu2=stu1;()例 struct student int num;char name20;struct date int month;int day;int year;birthday;stu1,stu2;numnamebirthdaymonthdayyearstu1.birthday.month=12;例 struct student
9、 int num;char name20;char sex;int age;float score;char addr30;stu1,stu2;if(stu1=stu2).()成员(分量)运算符优先级:1结合性:从左向右现在学习的是第10页,共31页练习1.设有以下语句:struct S char ch;int a4T;则下面叙述中正确的是()S是struct类型的变量 T是struct S类型的结构体变量 可以用S定义结构体变量 A.可以用T定义结构体变量现在学习的是第11页,共31页练习2.设有如下定义:struct sk int a;float sex;data;int*p;若要使p指向
10、data中的a域,正确的赋值语句是()Ap=&a;B.p=data.a;C.p=&data.a;D.*p=data.a现在学习的是第12页,共31页struct 结构体名 类型标识符 成员名;类型标识符 成员名;.;struct 结构体名 结构体变量=初始数据;例 struct student int num;char name20;char sex;int age;char addr30;struct student stu1=112,“Wang Lin”,M,19,“200 Beijing Road”;二、结构体变量的初始化形式一:现在学习的是第13页,共31页形式二:struct 结构体
11、名 类型标识符 成员名;类型标识符 成员名;.结构体变量=初始数据;例 struct student int num;char name20;char sex;int age;char addr30;stu1=112,“Wang Lin”,M,19,“200 Beijing Road”;现在学习的是第14页,共31页形式三:struct 类型标识符 成员名;类型标识符 成员名;.结构体变量=初始数据;例 struct int num;char name20;char sex;int age;char addr30;stu1=112,“Wang Lin”,M,19,“200 Beijing Ro
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 构造 数据类型
限制150内