结构体与共用体.ppt_第1页
结构体与共用体.ppt_第2页
结构体与共用体.ppt_第3页
结构体与共用体.ppt_第4页
结构体与共用体.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,第十一章 结构体与共用体,结构的基本概念 结构数组,2,11.1 结构体概述,用什么样的数据类型 来存储表中每一行数据呢?,3,顺序号() 书名() 书价() 管藏数量() 作者姓名() 出版社() 出版日期(),长整型(long) 字符串 实型(float) 整型(int) 字符串 字符串 (待定),数据项名,类型,怎样描述图书管中某本书籍的各项数据,11.2 结构体与结构体类型变量,4,实际上,这就声明了一个结构类型:struct books,为此,我们可有如下定义(暂不考虑出版日期) :,struct books long num; char name50; float price;

2、 int total; char author20; char pubass50; ;,5,结构中的成员也可以是结构类型变量,struct date int year ,month,day; ;,现在,可以重新定义结构类型struct books 如下:,6,struct date int year ,month,day; ; struct books long num; char name50; float price; int total; char author20; char pubass50; struct date pubdata; ;,7,形式一 先声明类型,再定义变量:,定义结

3、构类型变量的方法:,struct date int year ,month,day; ; struct books long num; char name50; float price; int total; char author20; char pubass50; struct date pubdata; ;,再用已声明的结构类型定义结构变量: struct books book1,book2,book3;,8,形式二、结构类型和结构变量一起定义: struct books long num; char name50; float price; int total; char author

4、20; char pubass50; struct date pubdata; book1,book2,book3;,9,形式三、直接定义结构类型变量,省略结构名:,如:struct long num; char name50; float price; int total; char author20; char pubass50; struct date pubdata; book1,book2,book3;,无结构名,10,关于结构体类型的说明,类型与变量是不同的概念,不能对类型赋值,只能对变量赋值, 结构体类型的地位与 int , float 等数据类型的地位相同,只是前者必须定义,后

5、者不需定义。 对结构体类型变量的定义方法与前面学过的数据类型的变量的定义方法相同。 可以单独引用结构体变量中的各个成员,它们相当于普通变量。 成员也可以是一个结构体变量。,11,由结构体变量名引用其成员的标记形式为: 结构体变量名.成员名 其中圆点运算符是成员运算符,它的运算级别最高 结构变量名成员名 如 book1num=7387221;,结构变量的引用,12,结构体型变量可以整体引用来赋值:如 book2=book1;即将变量book1的所有成员的值一一赋给变量book2的各成员。 结构体型变量不可进行整体的输入输出, 如: printf (%s,book1); 是错误的。 结构体型变量只

6、能对逐个成员进行输入或输出。,13,若结构体定义是嵌套的,则只能引用最低级的成员(用若干“.”运算符,逐级引用到最低级)。,如 :book1pubdata year = 1993; book1 pubdata month = 9; book1pubdataday = 30; 不可对book1pubdata进行操作, 因其不是最低级。 对成员变量可以像普通变量一样进行各种运算 如 :book2 num=book1 num; book1 price=book2 price+5; book1 total+;,14,结构变量的初始化,1、结构变量的初始化 下例对类型为 struct data 的结构变

7、量workday 和 birthday 作初始化:,struct books book=7387221,“C language”,17.8,20, “Tan hao qiang”, “Qinghua university”,1997,7,1;,struct data workday =1998,11,22, birthday=1980,10,19;,成员类型更复杂的结构变量怎样作初始化?,对结构体变量可以在定义时初始化。,15,例:11.1 对结构体变量的初始化 main() struct student long int num; char name20,sex,addr20; a=9803

8、1,li lin,m,123 beijingroad; printf(no.:%ldnname:%snsex:%cn address:%sn,a.num,,a.sex,a.addr); ,16,11.3 结构体数组,若数组中的每一个元素都是结构类型的数据,则应该使用结构数组。 1、怎样定义结构数组 某班学生数据结构如图所示,stu0 stu1 stu2,可定义一结构数组如下:,17,struct student, int num; char name20; char sex; int age; float score; char addr30; struct student stu

9、3;,这里定义了一个结构数组 stu3,18,结构体数组的初始化,与其它类型数组的初始化方法相同,只是为了区分各个元素,应将每个元素的成员值依次放在一对大括号中。 如: struct student stu3= 1,li,m,18,87.5,aaa, 2,liu,m,19,98,bbb, 3,xu,f,18,85,ccc ;,stu0,stu1,stu2,19,结构体练习,根据以下定义, 能输出字母 M 的语句是 . struct person char name9; int age; ; struct person class4= “Join”, 17, “Paul”, 19, “Mary”, 18, “Adam”, 16, ; printf(“%cn”,); printf(“%cn”,1); printf(“%cn”,1); printf(“%cn”,0);,20,2. 以下程序的输出结果是 . main() struct cmplx int

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论