- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机C语言教程第10章结构体和共同体教学幻灯片.ppt
C语言程序设计
第10章 结构体与共同体; 需要特别指出的是“struct student”是程序设计者自己定义的类型,它与系统预定义的标准类型(如int、char等)一样,可以用来定义变量,使变量具有struct student类型。例如:
struct student st1,st2[20];
分别定义了struct student结构体类型的变量st1和struct student结构体类型的数组变量st2。
;结构体类型的定义形式为:
struct 结构体类型名
{
成员说明表列
};
;实际上,凡是相关的若干数据对象都可组合成一个结构体,在一个结构体名下进行管理。例如,由日、月、年组成的结构体类型为:
;又如,某职工信息结构体类型为:
struct person
{
char name[20]; /*姓名*/
char address[40]; /*地址*/
float salary; /*工资*/
float cost; /*扣款*/
struct date hiredate; /*聘任日期*/
};
;其中,结构体类型struct person含有一个结构体类型成员hiredate。
该例子说明结构体类型可以嵌套定义,即一个结构体类型中的某些成员又是其他结构体类型。但是这种嵌套不能包含自身,即不能由自己定义自己。
结构体类型说明中,详细列出了一个结构体的组成情况、结构体的各成员名及其类型。结构体类型说明了一个数据结构的“模式”,但不定义“实物”,并不要求分配实际的存储空间。
程序要实际使用结构体,必须定义结构体变量。编译程序在为结构体变量分配存储空间时,其中各成员的存储格式及其意义与结构体类型保持一致。 ;§10.2 结构体类型变量 ;要定义一个结构体类型的变量,可采取以下3种方法。 ; 应当注意,将一个变量定义为标准类型(基本数据类型)与定义为结构体类型不同之处在于:后者不仅要求指定变量为结构体类型,而且要求指定为某一特定的结构体类型。例如,对struct student,不能只指定为struct型而不指定结构体名。而在定义变量为整型时,只需指定为int型即可。 ;例如:
struct student
{
int num;
char name[20];
char sex;
int age;
float score
char addr[40];
}student1,student2;;struct结构体类型名
{
成员说明表列
}变量名表列;
;3. 直接定义结构体类型变量
; (1)类型与变量是不同的概念,不要混同。对结构体变量来说,在定义时一般先定义一个结构体类型,然后定义变量为该类型。只能对变量赋值、存取或运算,而不能对一个类型赋值、存取或运算。在编译时,对类型是不分配存储空间的,只对变量分配存储空间。 ;(2)对结构体中的成员,可以单独使用,它的作用与地位相当于普通变量。 ;(3)成员也可以是一个结构体变量。例如:
struct date
{
int month;
int day;
int year;
};
struct member
{
int num;
char name[20];
char sex;
int age;
struct date birthday; /*成员变量是一个结构体变量*/
char addr[40];
} stu1,stu2;
; (4)成员名可以与程序中的其他变量名相同,两者不代表同一对象。例如,程序中可以另定义一个变量num,它与struct member中的num是两回事,互不干扰。
;10.2.2 结构体变量的使用 ;(1)由结构体变量名引用其成员的标记形式为:
结构体变量名.成员名
例如,stu1.num表示引用结构体变量stu1中的num成员,因该成员的类型为int型的, 所以可以对它施行任何int型变量可以施行的运算。例如:
stu1.num=20312;
;(2)由指向结构体的指针变量引用结构体成员的标记形式为:
指针变量名-成员名
例如,如下变量定义:
struct node
{
float x,y;
}p,u,*pt;
定义了两个结构体变量p、u和一个指向该结构体的指针变量pt,分析以下语句:
p.x=12.2;p.y=24.3;
pt=u;
pt-x=23.7;pt-y=3.5;
; 语句“pt=u;”使pt指向结构体变量u,可用pt-x和pt-y访问结构体变量u的两个成员。
上述语句执行情况可用图10.1描述各变量之间的关系。
; 上述例子说明结构
原创力文档


文档评论(0)