- 19
- 0
- 约1.13万字
- 约 40页
- 2017-12-09 发布于河南
- 举报
c语言char11
第十一章 结构体、联合体和枚举类型 用typedef语句定义新类型 一、格式 typedef 类型名1 类型名2; 如:typedef int INTEGER; 二、作用: typedef语句的作用是用“类型名2”来代替已存在的“类型名1”。实际它仅仅只是用一个类型名代替另一个类型名,并没有产生新的数据类型,并且代替后,原来的类型名依然有效。 例如: typedef char *String; String str; /*等价于 char * str; */ main(){ typedef int Integer; typedef char *String; Integer i; String p; p=This is a example.; i=strlen(p); printf(length of String: \%s\ is %d.\n,p,i); } 结构体 有时需要将不同类型的数据组合成一个有机的整体,以便于引用。这些组合在一个整体中的数据是互相联系的。例如,一个学生的学号、姓名、性别、年龄、成绩、家庭地址等项。这些项都与某一学生相联系。如图,可以看到性别(sex)、年龄(age)、成绩(score)、地址(addr)是属于学号为10010和名为“Li Fun”的学生的。如果将num.name.sex.age.score.addr分别定义为互相独立的简单变量,是难以反映它们之间的内在联系的。 所以应当把它们组织成一个组合项,在一个组合项中包含若干个类型不同(当然也可以相同)的数据项。C语言提供了这样一种数据结构,它称为结构体(structure)。它相当于其它高级语言中的“记录”。 结构体的类型的定义 格式: struct 结构体标识名 { 类型名1 结构成员名表1; 类型名2 结构成员名表2; …… 类型名n 结构成员名表n; }; 例如: struct student{ long int num; char name[20]; char sex; unsigned int age; float score; char addr[30]; }; 说明:结构体的成员又称为域,每个成员可以是任何数 据类型(包括数组,结构体和指针)。 如: struct date{ int year, month, day }; Struct student{ long int num; char name[20]; char sex; unsigned int age; struct date birthday; float score[4]; struct student *next; }; 结构体变量的定义 方式一:与其它数据类型的变量定义一样,即: 类型标识符 变量1[,变量2,….]; 例如: struct student s1, s2, b[10], *p; /*struct student已事先说明*/ 方式二:可以在说明结构体时真接定义变量,如: struct student{ int num; char name[20]; …} s1, s2, b[10], *p; 方式三:可在说明一个无名结构体类型时,同时直接定义变量。(此方式只可在不再需要定义此类型变量的场合下使用) struct { int num; char name[20]; …}s1, s2, b[10], *p; 注意:struct s1, s2, b[10], *p; 与 student s1, s2, b[10], *p; 两种定义都是错误的,因为不论struct还在student都不是完整的类型名。sturct student中的student或struct都不能省略。 方式四:上述定义方法也可通过typedef来定义一个结构体类型名,再用新类型名来定义变量来解决; 如: typedef struct{ long int num; … }Student; Student s1, s2, b[10], *p; 结构体变量的初始化 和一般的变量,数组一样,结构体变量也可以在变量定义时赋初值。 结构体变量初始化 格式: …..变量名={各域初值列表 }; 如: struct student{ long int num; char name[20]; char sex; float scort; char addr[20]; }a={0
您可能关注的文档
最近下载
- 原调正谱G小小蝴蝶la farfalletta钢琴伴奏高清打印版.pdf VIP
- 上海大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(B卷)附参考答案.pdf
- 广发证券-交通银行-601328-零售转型提速,定增落地夯实资本根基.pdf
- 上海大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 循环系统护理小讲课.pptx
- 建筑屋面西瓦专项施工方案(范本).doc VIP
- 2024年山东铝业职业学院单招综合素质考试题库及答案1套.docx VIP
- 探究TIPS术后支架堵塞的影响因素及抗凝治疗的必要性:基于多维度分析与临床实践.docx
- 成品仓库出货明细表.pdf VIP
- 贵州省黔西南州2025年中考数学试卷及答案.pdf VIP
原创力文档

文档评论(0)