c语言程序设计(王勇)第14章结构体共用体和用户定义类型-海贝.ppt





《c语言程序设计(王勇)第14章结构体共用体和用户定义类型-海贝.ppt》由会员分享,可在线阅读,更多相关《c语言程序设计(王勇)第14章结构体共用体和用户定义类型-海贝.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 14 章 结构体与共用体和用户定义类型第 一 节 用户定义类型用户自定义类型功能:用自定义名字为已有数据类型命名类型定义简单形式:typedef type name;例 typedef int INTEGER;类型定义语句关键字已有数据类型名用户定义的类型名例 typedef float REAL;类型定义后,与已有类型一样使用例 INTEGER a,b,c;REAL f1,f2;int a,b,c;float f1,f2;说明:1.typedef 没有创造新数据类型2.typedef 是定义类型,不能定义变量3.typedef 与 define 不同第 14 章 结构体与共用体和用户定义
2、类型第 一 节 用户定义类型第二节 结构体类型概述:结构体是一种构造数据类型用途:把不同类型的数据组合成一个整体struct 结构体名 类型标识符 成员名;类型标识符 成员名;.;成员类型可以是基本型或构造型struct 是关键字,不能省略合法标识符可省:无名结构体一、结构体类型定义(说明)例 struct student short num;char name20;char sex;short age;float score;char addr30;namenumsexagescoreaddr2字节2字节20字节1字节4字节30字节.结构体类型定义描述结构的组织形式,不分配内存二、结构体变量
3、的定义1.先定义结构体类型,再定义结构体变量struct student int num;char name20;char sex;int age;float score;char addr30;struct student stu1,stu2;#define STU struct studentSTU int num;char name20;char sex;int age;float score;char addr30;STU stu1,stu2;2.定义结构体类型的同时定义结构体变量struct student int num;char name20;char sex;int age;f
4、loat score;char addr30;stu1,stu2;3.直接定义结构体变量struct int num;char name20;char sex;int age;float score;char addr30;stu1,stu2;用无名结构体直接定义用无名结构体直接定义变量只能一次变量只能一次struct 类型标识符 成员名;类型标识符 成员名;.变量名表列;4.先用typedef说明一个结构体类型名,再用新类型名来定义变量typedef struct char name12;char sex;struct date birthday;float sc4;STREC;STREC
5、std,pers3,*pstdstruct date int year;int mouth;int day;说明:1.结构体类型与结构体变量概念不同结构体类型 结构体变量不分配内存;分配内存不能赋值、存取、运算;可以2.结构体成员名与程序中变量名可相同,不会混淆3.结构体可嵌套例 struct student int num;char name20;struct date int month;int day;int year;birthday;stu;numnamebirthdaymonthdayyear三、结构体变量的初始化struct 结构体名 类型标识符 成员名;类型标识符 成员名;.;
6、struct 结构体名 结构体变量=初始数据;例 struct student int num;char name20;char sex;int age;struct student stu1=112,“Wang Lin”,M,19;初始化时不允许跳过前面的成员给后面的成员赋值,但可以只给前面的成员赋值,后面未赋值的数值数据按0处理,字符数据按0,字符串数据按空串处理。四、结构体变量的引用2.可以将一个结构体变量赋值给另一个结构体变量引用方式:(1)结构体变量名.成员名 (2)指针变量名-成员名 (3)(*ps).sex例 struct student int num;char name20;
7、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);()stu1=101,“Wan Lin”,M,19,87.5,“DaLian”;()例 struct student int num
8、;char name20;char sex;int age;float score;char addr30;stu1,stu2;stu2=stu1;()例 struct student int num;char name20;char sex;int age;float score;char addr30;stu1,stu2,*p;p=&stu2if(stu1.age=(*p).age)stu1.score=p-score说明:1.不能整体引用,只能引用变量成员3.结构体嵌套时逐级引用例 struct student int num;char name20;struct date int mo
9、nth;int day;int year;birthday;stu1,stu2;numnamebirthdaymonthdayyearstu1.birthday.month=12;例 struct student int num;char name20;char sex;int age;float score;char addr30;stu1,stu2;if(stu1=stu2).()不能写成*ps.sex,因.运算符的级别高五、结构体数组struct student int num;char name20;char sex;int age;struct student stu2;numnam
10、esexagenumnamesexagestu0stu125B结构体数组初始化例 struct int num;char name20;char sex;int age;stu=,;顺序初始化:struct student int num;char name20;char sex;int age;struct student stu=100,“Wang Lin”,M,20,101,“Li Gang”,M,19,110,“Liu Yan”,F,19;例 struct student int num;char name20;char sex;int age;stu=,;分行初始化:struct s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 王勇 14 结构 共用 用户 定义 类型 海贝

限制150内