- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章讲义结构与共用体
教学目的:
介绍结构体、共用体的使用,掌握利用结构体、共用体编程。
学习要求:
1. 熟练掌握结构体类型的定义
2. 熟练掌握结构体变量的定义和使用
3. 掌握结构体数组
主要外语词汇:
Structure、Union
第9章 结构体与共用体
9.1 结构体的说明和定义
一、定义结构体类型:
struct [结构体名]
{ 类型名1 成员名1;
……
类型名n 成员名n;
};
1、一个结构体类型有其专用的标志,它由两个单词组成:第一个单词为关键字struct,第二个单词由用户指定,这二者联合起来组成一个类型名。
2、系统没有预先定义结构体类型,用户需在程序中自己定义。
3、定义一个结构体类型只是表示这个类型的结构,这只是定义类型而不是定义变量,系统对之也不分配实际内存单元,它只反映了一种数据属性。
“struct [结构体标识名]”的作用相当于“int”的作用。
4、定义结构体类型时允许嵌套(最多15层)。
5、结构体类型的定义有局部和全局之分。
二、定义结构体类型的变量:
1、先声明结构体类型再定义变量名:
例:struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
};
struct student student1,student2;
2、在声明结构体类型的同时定义变量:
例:struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}student1,student2;
3、直接定义结构体类型变量:
例:struct
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}student1,student2;
4、在编译时,系统对结构体变量分配实际内存单元。
5、结构体成员变量也可以是一个结构体变量。
6、结构体成员名可以与程序中的其它变量名相同。
例:struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}student1,student2;
int num,age;
9.2 结构体成员的引用与结构体变量的初始化
一、结构体变量的引用:
1、引用结构体变量中的一个成员:结构体变量名.成员名
.称为成员运算符,优先级最高。
2、区分:(1)student1.num:结构体变量student1中的num成员。
(2)num:简单变量num。
3、内嵌结构体成员的引用:必须逐层使用成员名定位。
例:student1.birthday.month
4、对结构体变量中的每个成员,都可以象普通变量一样,对它进行同类变量所允许的任何操作。
二、结构体变量的初始化:
1、所赋初值按顺序放在一对花括号中。
2、不允许跳过前面的成员给后面的成员赋初值。
例如:
struct student
{ char name[20];
char sex;
float sc[4];
}stud={“Li Ming”,‘M’,88,76,85.5,90};
3、在程序执行时利用赋值语句赋值:
例:struct student
{ char name[20];
char sex;
float sc[4];
}std;
strcpy(std.name,“Li Ming”);
std.sex=‘M’;
std.sc[0]=66; std.sc[1]=77; std.sc[2]=88; std.sc[3]=99;
4、如果一个结构体类型内又嵌套了另一个结构体类型时,则初始化时仍然是对各个基本类型的成员赋初值。
5、两个相同类型的结构体变量之间可以互相整体赋值。但数组之间不允许整体赋值。
例:#include stdio.h
void main( )
{ struct student
{ char name[20];
char sex;
float sc[4];
}std1={“Li Ming”,‘M’,88,76,85.5,90},std2;
std2=std1; 正确
…
}
例1:
9.3 结构体数组
结构体数组:数组中每一个元素都是一个结构体变量,数组各
您可能关注的文档
- 第7讲概率与统问题的题型与方法(4.doc
- 第7讲概率与统问题的题型与方法(4课时).doc
- 第7课 古马的政制与法律.doc
- 第7课PS-橡擦工具.doc
- 第7课时 按一定的比例将图形放大或缩小 台儿庄 侯春兰.doc
- 第7课时碳 硅化合物.doc
- 第7部分 Inernet应用技术.doc
- 第8章 民建筑的可靠性鉴.doc
- 第8次课 新概英语第一册下.doc
- 第8单元 直与圆.doc
- 新高考生物二轮复习讲练测第6讲 遗传的分子基础(检测) (原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第3讲 酶和ATP(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第8讲 生物的变异、育种与进化(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(检测)(原卷版).docx
文档评论(0)