- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计第7章结构体与链表枚举类型
第7章 结构体与链表
学习目的与要求:
理解并掌握结构体的定义和应用
掌握类型定义符typedef的使用方法
理解并掌握链表的定义与使用方法
了解共用体的定义及使用方法
了解枚举变量的使用方法
基本内容
结构体
结构体是程序员根据需要定义的一种数据类型。组成结构体的数据称为结构体的成员,这些成员来共同描述一个相关的对象。
struct structureName{
type member1;
type member2;
…
};
struct Person{
char name[20];
char sex;
int age;
int height;
};
结构体
由于结构体是程序设计者声明的一种数据类型,是对具体实例的抽象,所以在声明一个结构体时,不要实例化,即不要对成员赋初值。
struct Point
{
int x=0; //error 无法存储x.
int y=0; //error
};
结构体
结构体成员除基本数据类型外,还可为指针或结构体类型。
struct Date{
int year;
int month;
int day;
};
struct Person1{
char *name; //指针类型
struct Date birthday; //结构体类型
int height;
};
结构体类型变量的定义
(1)先定义结构体类型,再定义结构体变量。
struct Person ps1,ps2;
(2)在定义一个结构体类型的同时,定义结构体变量。
struct Point{
int x;
}pt;
(3)直接定义结构体变量,省略结构体名称。
struct {
int x;
}pt;
结构体类型变量的定义
(1)结构体类型与结构体变量是两个不同的概念,只能对结构体变量赋值、存取或运算,但不能对结构体类型赋值、存取和运算。
(2)在编译时,系统根据结构体所有成员的大小只对变量分配存储空间,而声明类型时不分配空间。
(3)结构体类型中的成员名可以与程序中的变量名同名,但它们表示不同的对象。例如在结构体struct Person中的成员“age”与程序中的变量“age”名字相同,意义不同。
结构体成员的访问
结构体变量名.成员名
struct Point pt;
pt.x=0; //给结构体变量pt的成员赋值
printf(x=%\n, pt.x); //输出x的值
结构体成员的访问
例7-1 对一个人的信息(姓名和生日)进行操作。
解题思路:首先定义生日结构体类型,包括出生年、月、日,再定义“人”的结构体类型,包括姓名和生日。定义“人”结构体变量,对其进行赋值并输出。
#includestdio.h
#includestring.h
struct Date{
int year;
int month;
int day;
};
struct Person1 {
char name[20];
struct Date birthday;
};
struct Person1 ps1={Zhang,{1988,11,20}},ps2;
printf(输入相关信息(姓名和出生年月日):\n);
scanf(%s,ps1.name); //输入姓名
scanf(%d%d%d,ps1.birthday.year, ps1.birthday.month, ps1.birthday.day);
ps2 =ps1;
strcpy(ps2.name,李四);
ps2.birthday.day+=8;
printf(输出人的相关信息:\n);
printf(姓名:%s\n生日:%d-%d-%d\n,ps1.name,ps1.birthday.year,
ps1.birthday.month,ps1.birthday.day);
printf(\n姓名:%s\n生日:%d-%d-%d\n,ps2.name,ps2.birthday.year,
ps2.birthday.month,ps2.birthday.day);
结构体变量的初始化
(1)在声明结构体变量时,可以像数组一样对其进行初始化。
struct Person ps={zhang, m,20,180};
struct Person ps={zhang};
(2)如果没有在声明时对结构体变量初始化,以后的赋值只能逐个成员进行。
struct Person ps1={zhang,m,20,180},ps2;
ps2={Gao,f,19,168}; /
您可能关注的文档
最近下载
- 房产税城镇土地使用税政策讲解.pdf VIP
- 《弟子规正版全文-带拼音-完善打印版》.docx VIP
- 新大学日语阅读与写作1东娜练习答案及译文.pptx
- 第19课 法国大革命和拿破仑帝国 课件(共33张PPT).pptx VIP
- 施工现场节假日前安全检查表.doc VIP
- 500kV龙昌Ⅰ、Ⅱ号线直线塔绝缘子单串改双串施工方案.pdf VIP
- 结构优化的群体智能优化算法研究.pdf VIP
- 新视野大学英语(第四版)读写教程1(思政智慧版)课件 B1U1 Section A Fresh start.pptx VIP
- 北京-407EV-标准版-BJ5030XXYVRRC-BEV-407EV纯电动汽车产品使用说明书.pdf VIP
- GB50666混凝土结构工程施工规范.pdf VIP
文档评论(0)