《结构体共用体》PPT课件.ppt
《《结构体共用体》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《结构体共用体》PPT课件.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第十四章第十四章结构体、共用体和用户定义类型结构体、共用体和用户定义类型14.1 用用typedef定义类型定义类型功能:用自定义名字为已有数据类型命名类型定义简单形式: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 1.typedef 没有创造没有创造新数据类型新数据类型2.typedef 2.typedef 是定义
2、类型是定义类型,不能定义变量不能定义变量3.typedef 3.typedef 与与 define define 不同不同 definedefine typedeftypedef预编译时处理预编译时处理 编译时处理编译时处理简单字符置换简单字符置换 为已有类型命名为已有类型命名 ntypedeftypedef定义类型步骤定义类型步骤按定义变量方法先写出定义体。按定义变量方法先写出定义体。如:如:intint i i;将变量名换成新类型名将变量名换成新类型名。如如:intint INTEGER INTEGER;最前面加最前面加typedeftypedef 如如:typedeftypedef in
3、tint INTEGERINTEGER;用新类型名定义变量用新类型名定义变量 如如:INTEGERINTEGER i,j i,j;v一一个个学学生生的的信信息息有有学学号号、姓姓名名、性性别别、年年龄龄、住址住址、成绩成绩等。等。v一本图书的信息有一本图书的信息有分类编号分类编号、书名书名、作者作者、出版社出版社、出版日期出版日期、价格价格、库存量库存量等。等。v如何描述这些类型不同的相关数据?如何描述这些类型不同的相关数据?结构体结构体结构体结构体一种构造类型数据一种构造类型数据 结构体结构体由若干不同类型的数据项组成,由若干不同类型的数据项组成,构成结构体的各个数据项称为构成结构体的各个数
4、据项称为结构体成员结构体成员。信息管理信息管理o14.214.2 结构体结构体&结构体是结构体是一种构造数据类型一种构造数据类型&用途:把不同类型的数据组合成一个整体用途:把不同类型的数据组合成一个整体-自定义自定义数据类型数据类型n结构体类型定义结构体类型定义 struct 结结构体名构体名 数据数据类类型型1 成成员员名名1;数据数据类类型型2 成成员员名名2;数据数据类类型型n 成成员员名名n;lstructstruct为关键字;为关键字;l结结构构体体名名是是用用户户定定义义的的类型标识类型标识。l 中中是是组组成成该该结结构构体体的的成成员员。成成员员的的数数据据类类型型可可以以是是
5、C语语言言所所允允许的任何数据类型许的任何数据类型。例如学生类型的定义:例如学生类型的定义:struct student int num;/*学号学号*/char name20;/*姓名姓名*/char sex;/*性别性别*/int age;/*年龄年龄 */float score;/*成绩成绩*/char addr30;/*住址住址*/;namenumsexagescoreaddr2字节字节2字节字节20字节字节1字节字节4字节字节30字节字节.o 结构体变量的说明结构体变量的说明n先定义结构体类型,再定义结构体变量先定义结构体类型,再定义结构体变量o一般形式:一般形式:struct 结构
6、体名结构体名 类型标识符类型标识符 成员名;成员名;类型标识符类型标识符 成员名;成员名;.;struct 结构体名结构体名 变量名表列变量名表列;例例 struct student int num;char name20;char sex;int age;float score;char addr30;struct student stu1,stu2;n定义结构体类型的同时定义结构体变量一般形式:struct 结构体名结构体名 类型标识符类型标识符 成员名;成员名;类型标识符类型标识符 成员名;成员名;.变量名表列变量名表列;例例 struct student int num;char na
7、me20;char sex;int age;float score;char addr30;stu1,stu2;直接定义结构体变量直接定义结构体变量一般形式:一般形式:struct 类型标识符类型标识符 成员名;成员名;类型标识符类型标识符 成员名;成员名;.变量名表列变量名表列;例例 struct int num;char name20;char sex;int age;float score;char addr30;stu1,stu2;说明说明结构体类型与结构体变量概念不同类型类型:不分配内存不分配内存;变量变量:分配内存分配内存类型类型:不能赋值、存取、运算;不能赋值、存取、运算;变量变
8、量:可以可以结构体可嵌套结构体成员名与程序中变量名可相同,不会混淆例例 struct date int month;int 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;numnamebirthdaymonthdayyearo 结构体变量的初始化结构体变量的初始化n形
9、式一: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”;形式二:形式二:struct 结构体名结构体名 类型标识符类型标识符 成员名;成员名;类型标识符类型标识符 成员名;成员名;.结构体变量结构体变量=初始数据初
10、始数据;例例 struct student int num;char name20;char sex;int age;char addr30;stu1=112,“Wang Lin”,M,19,“200 Beijing Road”;o结构体变量的引用n引用规则o 结构体变量不能整体引用,只能引用变量成员 结构体嵌套时结构体嵌套时逐级引用逐级引用成员成员(分量分量)运算符运算符优先级优先级:1结合性结合性:从左向右从左向右引用方式:引用方式:结构体变量名结构体变量名.成员名成员名例例 struct student int num;char name20;char sex;int age;float
11、 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;char name20;struct
12、date int month;int day;int year;birthday;stu1,stu2;numnamebirthdaymonthdayyearstu1.birthday.month=12;o结构体和指针n指向结构体变量的指针o定义形式:struct 结构体名 *结构体指针名;例 struct student *p;使用结构体指针变量引用成员形式存放结构体变量在内存的起始地址numnamesexagestupstruct student int num;char name20;char sex;int age;stu;struct student *p=&stu;(*结构体指针名结
13、构体指针名).成员名成员名结构体指针名结构体指针名-成员名成员名结构体变量名结构体变量名.成员名成员名指向运算符优先级:1结合方向:从左向右例 指向结构体的指针变量main()struct student long int num;char name20;char sex;float score;stu_1,*p;p=&stu_1;stu_1.num=89101;strcpy(stu_1.name,Li Lin);p-sex=M;p-score=89.5;printf(nNo:%ldnname:%snsex:%cnscore:%fn,(*p).num,p-name,stu_1.sex,p-sc
14、ore);例 int n;int *p=&n;*p=10;n=10struct student stu1;struct student *p=&stu1;stu1.num=101;(*p).num=101o 结构体数组n结构体数组的定义结构体数组的定义三种形式:三种形式:形式一:struct student int num;char name20;char sex;int age;struct student stu2;形式二:struct student int num;char name20;char sex;int age;stu2;形式三:struct int num;char nam
15、e20;char sex;int age;stu2;numnamesexagenumnamesexagestu0stu125Bn结构体数组初始化例 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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结构体共用体 结构 共用 PPT 课件
限制150内