最新版课件最新版课件c语言 (66)_第1页
最新版课件最新版课件c语言 (66)_第2页
最新版课件最新版课件c语言 (66)_第3页
最新版课件最新版课件c语言 (66)_第4页
最新版课件最新版课件c语言 (66)_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、第8章 结 构结构:一种信息类型信息类型根基类型组织类型指针类型空类型整型实型字符型数组结构联合枚举单精度型双精度C语言的信息类型18.1 结构变量一样一个事物有多个特点,要用几个信息共同描述例似 学生根基情况: 学号、名字、性不、年纪、地址、成绩 日期: 年、月、日、小时、分事物的各种特点能够用如果干变量和数组描述,但不能反映这些特点信息彼此联系.C语言提供结构类型信息来描述. struct student_type int num; char name20; int score; ; struct student_type student;对某学生示意为strudent.numstrude

2、strudent.score可见结构类型信息是变量的集合例似 每个学生有: 学号num、名字name20、成绩score变量名重量名2结构类型的定义标准 struct 结构类型名 重量表列;其中(1)结构类型名按标识符取名(2)重量表列: 类型标识符1 重量名1; 类型标识符2 重量名2; 类型标识符n 重量名n;struct student int num; char nane20; int score; ;例似 定义一个对于学生根基情况的结构,其重量由学号、姓名、成绩组成:注:结构的定义以分号结束.定义struct student信息类型又例 平面上的随意率性一点的结构 st

3、ruct point float x; float y; ;定义struct point信息类型31.结构变量的定义(1)先定义结构类型再定义结构体变量 标准 struct 结构类型名 变量1,变量2,.例似 struct student int num; char name20; int score; ; struct student student1,student2;那么内存安排 num name score student1student2定义结构类型定义结构变量4(2)定义结构类型时同时定义结构体变量标准 struct 结构类型名 重量表列变量表列;例似 struct student

4、 int num; char name20; int score; student1,student2;(3)直截了当定义结构变量 标准 struct 重量表列变量表列;例似 struct int num; char name20; int score; student1,student2;注(1)类型与变量是差别的概念 类型表明变量(2)重量名能够与程序中的变量名一样,两者不代表同一对象似 int num; struct student student1,student2; num 与 student1.num、student2.num是差别量52. 结构类型变量的引用重量形式 结构变量名.

5、重量名 其中 . 是运算符,优先级为最高1级 示意会见某结构变量中的某重量,与简单变量和数组元素使用一样 stud1.num=201; strcpy(,Zhang Hong); stud1.score=92; scanf(%d %s %d, &stud1.num,, &stud1.score); printf(%d %s %d, stud1.num,, stud1.score);似 struct int num; char name20; int score; stud1;stud

6、1.score201Zhang Hong9263. 结构体类型变量初始化与变量、数组的初始化相近注注 按次序将信息依次赋值于重量按次序将信息依次赋值于重量,信息类型与成员类型要一致信息类型与成员类型要一致输出:201 Zhang Hong 92struct studentint num; char name20; int score; struct student student1=201,Zhang Hong,92; main() printf(%d %s %dn, stud1.num,, stud1.score);例74.整体赋值 结构名1=结构名2; 似 studen

7、t1=student2; 注 赋值号=的左右的结构类型要一致,全部的成员一一对应赋值例8-3 将结构变量stud1的值赋给结构变量stud2 .#include main()static struct student int num; char name20; int score; stud1 =201,Zhang Hong,92, stud2; stud2= stud1; printf(%d %s %d,stud2.num,,stud2.score);输出 201 Zhang Hong 92stud2= stud1;等价与stud2.num= stud1.num;strc

8、py(, );stud2.score= stud1.score;8结构能够嵌套,即结构的重量又是一个结构的变量例似 struct date int month; int day; int year; ; struct student int num; char name20; int score; struct date birthday; student1,student2;或 struct student int num; char name20; int score; struct int month; int day; int year; bir

9、thday; student1,student2;2.引用时,当结构的重量名又是结构名时,接着使用.延伸似 student1.birthday.year student2.birthday.day1.结构嵌套定义:用结构类型定义结构的重量9例8-4 如果学生的信息构成似下图,请为其定义符合的信息类型学号姓名家庭地址成绩都市街道门牌号struct addresschar city20; char street20; int number; ;struct studentint num; char name20; struct address addr; int score; ;void main

10、()struct student stud1=201,Zhang Hong,Hangzhou,QS,11,92; printf(%dn,stud1.num); printf(%sn, ); printf(%sn,stud1.addr.city); printf(%sn,stud1.addr.street); printf(%dn,stud1.addr.number); printf(%dn,stud1.score);输出:201Zhang HongHangzhouQS119210结构数组用结构类型定义的数组例似 struct student int num; char na

11、me20; int score; ; struct student stud10;数组元素 studi是一个数组元素(结构体变量),引用为 studi.num studi.score或 struct int num; char name20; int score; stud10;8.2.1 结构数组的定义和引用118.2.2 结构数组的初始化例 struct student int num; char name20; int score; stud2=201,Zhang Hong,92, 202,Wang Fang,80;每个.依次赋值于结构体数组元素stud0.num=201;stud0.n

12、ame=Zhang Hong;stud0.score=92;stud1.num=202;=Wang Fang;stud1.score=80;12例8-5 创站有10个学生的结构记录,输出平均分数,同时从高到低输出成绩.#include struct student int num; char name20; int score; ; struct student stud10,temp;void main()int i,sum=0; for(i=0;i10;i+) scanf(%d%s%d,&studi.num,,&studi.score); sum=sum+studi.s

温馨提示

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

评论

0/150

提交评论