欢迎来到天天文库
浏览记录
ID:36918689
大小:564.60 KB
页数:25页
时间:2019-05-10
《《结构体共用体》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、继续教学目的与要求掌握结构体和共用体类型说明、结构体和共用体变量的定义及初始化方法掌握结构体与共用体变量成员的引用返回重点与难点重点:结构体的基本概念结构类型及变量的定义共用体类型定义共用体变量定义及引用难点:结构体和共用体的引用继续结构体类型一个结构体类型可由多个成员(或称为域)的成分组成。与数组类型相比:相同点:对于某个具体的结构体类型,其成员的数量必须固定。不同点:结构体中各个成员的类型可以相同也可以不同,数组元素的类型必须完全相同;结构体类型有许许多多,而不是只有一种。继续结构体类型声明一个结构体类型的一般形式为:struct结构体名{类型名
2、成员名表;类型名成员名表;……};注意:1.由于结构体名可以由程序员任意取定,因此定义结构体变量的类型名不是唯一的,这一点和标准类型名不同。一起构成了类型名2.最后的分号不能少。继续结构体类型假设程序中有如下数据结构,则用户应在程序中建立如下的结构体:姓名(name)性别(sex)年龄(age)地址(addr)工资(salary)ChengyiM18Wuhan2000.00structemployee{charname[15];charsex;intage;charaddr[20];floatsalary;};继续结构体类型定义结构体类型的变量有3种
3、方法。例如:structemployee{charname[15];charsex;intage;charaddr[20];floatsalary;}a;(1)先声明结构体类型,再定义变量名。例如:structemployeea;structemployee*p;(2)在定义一个结构体类型的同时,定义结构体变量。继续结构体类型例如:struct{charname[15];charsex;intage;charaddr[20];floatsalary;}a;(3)不写结构体名而定义结构体变量(无名结构)。注意:由于没有写出结构体类型的名字,不能再用它定
4、义别的变量。继续结构体类型例如:structdate{intmonth;intday;intyear;};在定义一个结构体类型时,可以嵌套另一个已定义的结构体类型。可以在表示职工基本情况的结构体类型中增加出生日期这一成员,即:structemployee{charname[15];charsex;structdatebirthday;intage;charaddr[20];floatsalary;}a;继续结构体类型例如:structdate{intmonth;intday;intyear;};在内存中,结构体变量占据一片连续的存储单元。它占用的字节
5、数是各个成员占用字节数的总和。可以用sizeof运算符测出一个结构体变量的长度。那么sizeof(structdate)的值为6。说明:(1)C编译程序时,每个成员将依次取得对应的初值。(2)若只给前面若干个成员赋初值,则对后面未赋值的成员,如果是数值型,系统将自动赋初值零;如果是字符型,系统自动赋初值NULL(即’ ’)。继续结构体类型例:structemployee{charname[15];charsex;intage;charaddr[20];floatsalary;}a={“Chengyi”,’M’,18,”Wuhan”,2000.00}
6、;在定义结构体变量的同时,可直接将初值赋给结构体变量中的各个成员。具体有以下三种形式可以引用结构体变量中的成员:(1)结构体变量名.成员名;(2)指针变量名->成员名;(3)(*指针变量名).成员名。称为“成员运算符”说明:(1)此处指针变量与结构体变量是同一类型,并且已指向同类型的变量。继续结构体类型在引用结构体变量时,有以下两种情况:1.引用结构体变量中的一个成员称为“结构指向运算符”(2)在运算符的优先级中,圆点运算符和箭头运算符属于最高级别的运算符。(1)若要引用结构体类型变量stud中的score成员项,可写成如下形式:stud.score
7、p->score(*p).score(2)如果一个结构体类型中嵌套有另一个结构体类型,则访问内嵌结构体成员时,应采取逐级访问的方式。例如,stud.birthday.year继续结构体类型例:structstudent{charname[15];intnum;structdatebirthday;floatscore;}stud,*p;p=&stud;设有定义:struct{charname[15];intnum;}stud1,stud2={“Chengyi”,01};stud1=stud2;注意:C不允许把一个结构体变量作为一个整体进行输入和输出。
8、继续结构体类型2.将一个结构体变量作为一个整体赋给另一具有相同类型的结构体变量例如:scanf(“%d”,&
此文档下载收益归作者所有