- 1、本文档共114页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C程序设计:结构类型与链表
第7章 结构和链表;基本类型:如整型、实型、字符型等。
构造类型:数组,每个元素都是属于同一个类型。
结构类型:不同的数据类型组成一个整体方便引用。
例如:一个学生数据实体可能有以下多项信息
学号、 姓名、 性别、 年龄、 成绩、 家庭地址
int char char int float char
说明:这类实体的数据因所包含的成员类型不同,不能用单个数组来表示,也不便将它们的成员分拆成多个独立的简单变量,因为这样会失去实体的整体性。 ;结构类型形式:
struct 结构类型名 {
成员说明表
};
其中
关键字“struct”:引出结构类型的定义。
结构类型名:结构类型的标记,用来定义引用该结构的结构变量。
成员说明表:指明该结构类型的各成员的数据类型和名称。
每个成员的说明形式为: 类型 成员名;;【例】学生基本信息的结构类型:
struct student
{ int number; /* 学号 */
char name[20]; /* 姓名,设姓名少于20个字符 */
char sex; /* 性别 */
char address[40]; /* 家庭地址 */
};
说明:在C++中,如果不会引起混淆(例如,结构类型与结构变量同名),引用结构类型可以不用struct引导。 ; 当结构类型中的某个成员又是另一个结构类型时,这种结构类型是一种嵌套的结构类型。
例如,给上述学生信息增加出生日期,并将出生日期定义为一种包含日、月、年3项信息的结构类型,则更完整的学生信息类型就被定义成嵌套的结构类型。;struct Date /* 说明一个日期 */
{ int day; /* 日 */
int month; /* 月 */
int year; /* 年 */
};
struct student
{ int number; /* 学号 */
char name[20]; /* 姓名 */
char sex; /* 性别 */
Date birthday; /*采用C++句法,birthday的类型是结构类型Date,如果采用C句法,则在Date之前用struct引导 */
char address[40]; /* 家庭地址 */
};; 在结构类型定义中,详细列出了结构类型所包含的每个成员的名称及其类型。实际上,结构类型定义只是表明一类实体其数据属性的“模式”,并不定义一个特定的数据实体,因此不要求分配存储单元。
程序如果要实际使用结构类型所描述的数据信息,就必须定义结构变量。
结构变量要占用存储单元,能存放如结构类型所描述的具体数据。
对结构类型和结构变量,我们可以简单地理解为,结构类型是表示数据框架的描述文本,结构变量才能存放实际数据。 ;一、先定义结构类型,再声明结构变量
形式:struct 结构类型名 结构变量名表; /* C句法 */
结构类型名 结构变量名表; // C++句法
例如:利用前面已定义的结构类型 student声明结构变量
代码: struct student st1, st2; /* C句法 */
student st1, st2; // C++句法
其中: student为结构类型名,st1和st2为结构变量。
说明:结构变量声明后,每个结构变量的成员名称、成员个数和各成员的数据类型与结构类型定义中的成员名称、成员个数和各成员的数据类型相一致。;结构变量内存分配单元;二、在定义结构类型的同时声明结构变量; 在定义结构变量的同时给它赋初值,称为结构变量的初始化。结构变量初始化时,要按结构类型定义中成员的顺序逐一给出各成员的初值。
例如:struct point /* 说明绘图程序的坐标类型 */
{ int x;
int y;
} p1 = { 20, 50}, p2; /* p1的x值为20,p1的y值为50 */
说明:也可以在定义结构类型与声明结构变量分开的情况下,在声明结构变量时进行初始化。
例如: struct point p
您可能关注的文档
- 首都师范大学初教院信息方向2014年C语言考试代码复习资料.docx
- 12001202好几个.doc
- 几个简单的C语言源程序.docx
- 005-启动与自动挂载.doc
- 04-分区与磁盘操作.ppt
- 04编辑与修改图形对象.ppt
- 02GPIB接口性能与总线结构1.ppt
- 四川计算机2级19到32次答案.doc
- 08级毕业设计译文与原文---程序不变量.doc
- 07安装配置与故障排除网络策略服务器角色服务.ppt
- 中国多次直拉单晶炉行业市场占有率及投资前景预测分析报告.pdf
- 中国多功能阀门行业市场占有率及投资前景预测分析报告.pdf
- 中国多工位直接成衣打印机行业市场占有率及投资前景预测分析报告.pdf
- 部编版九年级下册语文详细教学计划及教学进度安排.docx
- 宁夏吴忠市同心县四校2024-2025学年高一上学期期末联考试地理试题(解析版).docx
- 中国多点平均温度计行业市场占有率及投资前景预测分析报告.pdf
- 2024年重庆市高考物理试题含答案解析.docx
- 2024年天津市高考政治试题含答案解析.docx
- 2024年天津市高考物理试题含答案解析.docx
- 中国多弹簧泥浆密封行业市场占有率及投资前景预测分析报告.pdf
文档评论(0)