计算机C语言教程第10章结构体和共同体教学幻灯片.ppt

计算机C语言教程第10章结构体和共同体教学幻灯片.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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)

yuzongxu123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档