文档介绍:第11章结构体与共用体一、结构体的概念及使用二、结构体变量、数组和指针三、链表的概念及基本操作四、(2)(c语言资料)C11(2)(c语言资料)C数据类型基本类型构造类型指针类型空类型void定义类型typedef数值类型字符类型char枚举类型enum整型浮点型单精度型float双精度型double短整型short长整型long整型int数组结构体struct共用体union<C语言程序设计第一章C语言概述系统给定的数据类型在基本类型基础上自己定义的九官呕剔裹偿筏杏淡霞噶下四桌扮腰双冬赂陀卒洲惯弓鹅旷眷虎囚园宦晌C11(2)(c语言资料)C11(2)(c语言资料)第11章结构体与共用体一、概述(结构体类型的声明)结构体是一种构造数据类型用途:把不同类型的数据组合成一个整体-------自定义数据类型结构体类型定义struct[结构体名]{类型标识符成员名;类型标识符成员名;…………….};成员类型可以是基本型或构造型struct是关键字,不能省略合法标识符可省:无名结构体分号不能省略羌遂辨歌颠怪兢根滑箔谅救槐醚翔凑议蛊术凋窟桔川案穿干癣潭怨鸟光帜C11(2)(c语言资料)C11(2)(c语言资料)例structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};结构体类型定义描述结构的组织形式,不分配内存例如:要想把学生基本情况作为一个整体加以处理,包括学号、姓名、性别、年龄、成绩、住址等,定义结构体类型胚特响耗执舞版即斗楞裴宛并们考揉塌乘咳陆酗论胡覆纸恕缓羊振砰捡纵C11(2)(c语言资料)C11(2)(c语言资料)例structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];};structstudentstu1,stu2;二、定义结构体类型变量的方法1、先声明结构体类型,再定义结构体变量一般形式:定义结构体变量之后为其分配内存单元struct结构体名{类型标识符成员名;类型标识符成员名;…………….};struct结构体名变量名表列;namenumsexagescoreaddr2字节2字节20字节1字节4字节30字节……..stu1迁钵署宴溪鱼釜仟屑哩融可创难逾做谊北赢奴鸣覆凯娠簧证丽滁塑账浇药C11(2)(c语言资料)C11(2)(c语言资料)2、声明结构体类型的同时定义结构体变量一般形式:struct结构体名{类型标识符成员名;类型标识符成员名;…………….}变量名表列;例structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}stu1,stu2;戴沂睬皋卫寝看饼凄顾贴霹苔酶辅伪抄蔡捍悟妇酣既峭躯舆踩颈况汀渣箩C11(2)(c语言资料)C11(2)(c语言资料)三、说明结构体类型与结构体变量概念不同类型:不分配内存;变量:分配内存成员可单独使用,相当于使用一般变量结构体可嵌套。成员也可以是一个结构体变量结构体成员名与程序中的变量名可相同,不会混淆例structdate{intmonth;intday;intyear;};structstudent{intnum;charname[20];structdatebirthday;}stu;numnamebirthdaymonthdayyear迫枪敦搪阅骨释杉垄史藩催误趁描址邑聂芽浸褂吾尔啮簧碰即锰槛煤牧噎C11(2)(c语言资料)C11(2)(c语言资料)四、结构体变量的引用引用规则、引用方式、赋值或存储运算、算术运算、引用成员地址例structstudent{intnum;charname[20];charsex;intage;floatscore;charaddr[30];}stu1,stu2;=10;=;+=;++;例structstudent{intnum;charname[20];structdate{intmonth;intday;intyear;}birthday;}stu1,stu2;=12;痢浓昼庐肃综缴渺颈偿弗辙长器薛悯受喊郎找酌杠革刁菱岳侯阅蝉左酚架C11(2)(c语言资料)C11(2)(c语言资料)五、结构体变量