文档详情

《高级语言程序设计教学课件》第9章.pptx

发布:2025-05-15约9.85千字共44页下载文档
文本预览下载声明

1第九章结构体

2学习目标结构体的概念结构体类型和结构体变量的差别运算符“.”和“-”结构体数组、结构体指针

问题:我们要处理一个学生的信息,包括:

学号、姓名、性别、年龄、成绩、地址按照以往定义变量的方式,我们可以这样定义:structstudent{ intnum; charname[20]; charsex; intage; floatscore; charaddr[50];};这些变量相互独立,很难反映出它们的内在联系结构体

【例】平面上点(x,y)的表示structpoint{floatx;floaty;}; (4,3)(0,0)平面上的点关键字结构体名结构体成员

定义一个结构体的一般形式为:注意:1.结构体类型不分配空间,是一种数据类型;2.结构体成员的类型可以不同struct结构名{数据类型成员1;……数据类型成员n;};

namenumsexagescoreaddr4字节4字节20字节1字节4字节50字节………structstudent{ intnum; charname[20]; charsex; intage; floatscore; charaddr[50];};结构体类型定义描述结构的组织形式,不分配内存

01structpoint02{03floatx;04floaty;05};06structpointpoint1;07point1.x=4;08point1.y=3;

{floatx;floaty;};structpointpoint1,point2;structpoint01struct结构名{数据类型成员1;……数据类型成员n;};struct结构名结构变量1,结构变量2;形式1:先定义类型,再定义变量02

1{floatx;floaty;}point1,point2;structpointstruct结构名{数据类型成员1;……数据类型成员n;}结构变量1,结构变量2;形式2:在定义类型时,定义变量2

形式3:无类型名的变量定义结构名01注意第三种定义形式省略了结构名,在此定义语句后面无法再定义这个类型的其它结构变量02struct{数据类型成员1;……数据类型成员n;}结构变量1,结构变量2;03struct{floatx;floaty;}point1,point2;

name11说明结构体类型与结构体变量概念不同类型:不分配内存 变量:分配内存类型:不能赋值、存取、运算 变量:可以结构体可嵌套结构体成员名与程序中变量名可同,不会混淆例structdate{intmonth;intday;intyear;};structstudent{intnum;charname[20];structdatebirthday;}stu;numbirthdaymonthdayyear例structstudent{intnum;charname[20];structdate{intmonth;intday;intyear;}birthday;}stu;例main(){structstudent{intnum;charname[20];}stu;intnum;num=0;stu.num=1;……}

#includestdio.hmain(){structstudent{longintnum;charname[20];charaddr[20];}a={89031,LiLin,123BeijingRoad}; printf(No.:%ld\nname:%s\naddress:%s\n,a.num,a.name,a.addr);}初值表

在定义结构变量的时候对其进行初始化;初始化表由{}括起;逗号隔开的数据

显示全部
相似文档