- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第14章结体共用体和用户自定义类型
本章重点 14.1 用typedef说明一种新类型名 14.2 结构体类型 14.3 共用体 14.1 用typedef说明一种新类型名 C语言允许用户自己定义类型说明符,也就是说允许由用户为数据类型取“别名”。类型定义符typedef即可用来完成此功能,它可以C语言的基本数据类型取“别名”,也可以为用户自定义的结构类型取“别名”。例如, typedef int INTEGER 这以后就可用INTEGER来代替int作整型变量的类型说明了。例如: INTEGER a,b; 它等效于: int a,b; 用typedef定义数组类型、指针类型、结构类型将带来很大的方便,不仅使程序书写简洁,而且增强了可读性。例如: typedef char NAME[20]; 表示NAME是字符数组类型,数组长度为20。然后可用NAME 说明变量,如: NAME a1,a2,s1,s2; 完全等效于: char a1[20],a2[20],s1[20],s2[20] typedef struct stu { char name[20]; int age; char sex; } Student; 定义Student表示struct stu的结构类型,然后可用Student来说明结构变量: Student body1,body2; typedef定义的一般形式为: typedef 原类型名 新类型名 有时也可用宏定义(#define)来代替typedef的功能,但是宏定义是由预处理完成的,而typedef则是在编译时完成的,它并不只是作简单的字符替换。 14.2 结构体类型 C语言的基本数据类型有整型,实型,字符型等,在实际问题中,把一个对象抽象成数据来表示时,往往需要一组不同基本数据类型的组合。 14.2.1 结构体类型的说明 结构体类型说明的一般形式是: struct 结构体标识名 { 类型名1 结构成员名表1; 类型名2 结构成员名表2; … 类型名n 结构成员名表n; }; 其中struct是关键字,是结构体类型的标志。“结构体标识名”和“结构成员名”都是用户定义的标识符。其中“结构体标识名”是可选项,在说明中可以不出现。成员表列由若干个成员组成,由一对大括号括起来,每个成员都是该结构的一个组成部分。对每个成员也必须作类型声明,其形式如下: 类型说明符 成员名; 结构体成员名表中可以含有多个同类型的成员名,它们之间用逗号分隔。例如: struct student { int math score, ;english score, sum;}; 结构体中的成员名可以和程序中的其它变量同名;不同结构体中的成员也可以同名。 在成员列表中,类型名1~类型名n不仅可以是简单数据类型,也可以是构造类型,所以也可以是某种结构体类型。这时称为结构体的嵌套。嵌套时允许内嵌结构体成员名与外层成员的名字相同。例如: struct student { char name[10]; char sex; struct date birthday; float score[5]; }; 以上说明中,birthday成员的类型struct date是一个已经说明过的结构体类型。若事先没有说明这一类型,则以上结构体类型说明可改写成如下: struct student { char name[10]; char sex; struct { int year; int month; int day; } birthday; float score[5]; }; 14.2.2 结构体类型的变量的定义 定义结构类型变量由以下四种方法: 1.先定义结构,再说明结构变量。例如: struct student { int number; char name[31]; short age; char sex; char grade; char address[101]; }; struct student boy1, boy2; 2.在定义结构类型的同时说明结构变量。这种形式说明的一般形式为: struct 结构名 {成员表列 } 变量名表列; 例如: struct student { int
文档评论(0)