- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章
用户定制数据类型及位运算
6.1 结构
6.1.1 概述
在学生的一组信息中往往数据类型各不相同。例如:
姓名应为字符串
学号可为整型或字符串
年龄应为整型
性别可为字符数组
成绩可为整型或实型
为了解决这个问题,C语言中给出了一种构造数据类型——“结构” (struct)
1.定义一个结构的一般形式为:
struct 结构类型名
{
成员表
};
成员表由若干个成员组成,每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,其形式为:
类型说明符 成员名;
6.1.2 结构的声明
例如:
struct ST /* 定义结构类型 */
{ int num; /* 学号 */
char *name; /* 姓名 */
char sex[3]; /* 性别 */
float score; /* 成绩 */
};
2.结构类型变量的定义
前面已定义了结构类型,为能在程序中使用结构类型,还应当定义结构类型的变量
可采用如下三种方法定义结构类型变量。以上面定义的ST例来加以说明
(1)先定义结构类型,再说明结构变量。
这种定义一个结构变量的一般形式如下:
struct 结构类型名
{
成员表列
}; /*这里需要“;” */
struct 结构类型名 结构变量表;
上面结构变量表中不同结构变量之间用逗号“,”隔开,例如:
struct ST /* 定义结构类型 */
{ int num; /* 学号 */
char *name; /* 姓名 */
char sex[3]; /* 性别 */
float score; /* 成绩 */
};
struct ST boy, girl; /* 定义结构变量 */
(2)在定义结构类型的同时说明结构变量。
这种定义一个结构变量的一般形式如下:
struct 结构类型名
{ 成员表
} 结构变量表;
例如:
struct ST /* 定义结构类型 */
{ int num; /* 学号 */
char *name; /* 姓名 */
char sex[3]; /* 性别 */
float score; /* 成绩 */
} boy, girl; /* 定义结构类型变量 */
上面的定义与第一种方法相同,也定义了两个变量boy和girl为ST结构类型。
(3)直接说明结构变量
这种定义一个结构变量的一般形式如下:
struct
{ 成员表
} 结构变量表;
例如:
struct
{ int num; /* 学号 */
char *name; /* 姓名 */
char sex[3]; /* 性别 */
float score; /* 成绩 */
} boy, girl; /* 定义结构类型变量 */
第三种方法与第二种方法的区别在于第三种方法中省去了结构类型名,而是直接给出结构变量。
结构体内的成员也可以是另外一个结构,即构成了嵌套的结构类型。
struct DateType /* 定义结构类型 */
{ int year; /* 年 */
int month; /* 月 */
int day; /* 日 */
};
struct StudentType /* 定义结构类型 */
{ int num; /* 学号 */
char *name; /* 姓名 */
char sex[3]; /* 性别 */
struct DateType birthday; /* 生日 */
float score; /* 成绩 */
} boy, girl; /* 定义结构类型变量 */
6.1.3 结构类型变量的引用
表示结构变量成员的一般形式是:
结构变量名.成员名
结构变量的赋值一般就是给各成员赋值。可用输入语句或赋值语句来完成。
若成员本身又是一个结构,则必须逐级找到最低级的成员才可以使用,一般形式为:
外层结构变量.外层成员名.内层成员名
例6.1 试编写为结构变量赋值并输出其值的程序。
int main(void) /* 主函数main() */
{
struct DateType /* 定义结构类型 */
{ int year; /* 年份 */
int month; /* 月份 */
int day; /* 日 */
};
struct StudentType /* 定义结构类型 */
{ int num
您可能关注的文档
最近下载
- 2025青海公司所属华电(格尔木)能源有限公司面向华电系统内外招聘180人笔试参考题库附答案解析.docx VIP
- 意大利语基础单词与日常用语修订稿.docx VIP
- 2025南方电网文山供电局招聘短期项目制用工(35人)笔试模拟试题及答案解析.docx VIP
- 中文版新视线意大利语中级练习手册.docx VIP
- 山东科学技术版劳动实践指导手册一年级全册教学设计教案.pdf
- 山东科学技术版劳动实践指导手册二年级全册教学设计教案.doc
- 2025至2030年中国淫羊藿提取物行业市场竞争态势及发展前景研判报告.docx
- chiavi del Quaderno degli esercizi新视线意大利语初级练习册答案.pdf VIP
- 主、被动防护网施工组织设计方案.docx VIP
- 山东科技出版社劳动实践指导手册二年级第1课清洁与卫生小件衣物清洗洗内衣 教案.doc VIP
文档评论(0)