文档详情

结构体与共同体.pptx

发布:2025-04-29约7.37千字共10页下载文档
文本预览下载声明

第9章结构体与共同体9.1结构体9.2结构体数组9.4共用体

确定该类型数据的表示形式、取值范围、存储结构及其允许参加的运算。∴在程序中每个变量在使用前要确定其类型,在前面所定义的类型都是标准类型。在前面介绍的内容均为系统定义类型,用户只要按要求用这些类型说明变量即可。类型的作用9.1结构体

例如:intx;floaty;chara[30];A这些基本类型只能解决简单的问题,而实际应用中的类型是千变万化的。B简单类型(整、实、字)的变量是独立的,变量之间无内在的联系;数组类型虽能同时存放多个数据,但必须是同类型的。C允许用户按需求自己定义类型。C

例如:在计算机等级考试管理系统中,若每个考生都有如下信息:考号:长整型姓名:字符串性别:字符年龄:无符号整型报考等级:字符串成绩:实型数据分属不同的类型,显然不能采用前面已介绍过的类型来处理。C语言提供了解决这类问题的类型——结构体类型。

structstudent1{intnum; charname[20];charclass[10]; charsex; floatscore;}structstudent2{intnum; charname[20];charclass[10];datebirth;}structdate{shortyear; shortmonth;shortday;}结构类型的定义

structstudent1stu1,stu2方法1:方法2:structstudent2{intnum; charname[20];charclass[10];datebirth;}stu1,stu2在VC中若文件名*.cpp,用结构类型说明变量时可省略struct。结构类型变量的定义

由于结构类型是一个复合类型,其由多个成员组成,因此不能访问结构体变量(同数组),只能按如下方法访问变量的成员。变量名.成员名变量名.一级成员.二级成员(嵌套时)01结构类型变量的访问02

structstudent1stu1={2001802,李,计011,女,85.2};structstudent2stu2={2001802,李,计011,女,12,3,1986,85.2};scanf(%d,stu1.num);gets(stu2.name);stu1.sex=getchar();stu1.birth.day=12;printf(“%d”,stu1.birth.day);puts(stu2.name)2.对成员,可根据其类型进行相应的运算。

}stu1,stu2={200123,76.5};{intno;类型的结构变量可互相整体赋值。stu1=stu2;floatscore;由于结构型变量的成员多,C允许两个同例如:structs

4.结构体变量中的各成员在内存中占一片连续的单元,其长度为:各成员所占单元之和stunumnameclasssexbirthdaymonthdayyearscore5.不能在定义类型时给成员赋值。structstu{longnum=97031;charname[20]=liming;charsex=m;}student;错,不能对类型赋值!

例如:structstudent{intnum;charname[20];charsex;floatscore;};由于结构类型变量占用连续单元,故p存放num成员的首地址可用结构类型定义指针。即存放结构对象的首地址。structstudentx,*p;p=x;指向结构体的指针

结构型变量.成员名结构型指针?成员名访问成员时,有两种表示:见P.198例9.3

结构体变量作为函数参数01因为结构体变量中的每个成员都

显示全部
相似文档