预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共55页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第十二章§12.2结构体的定义例:structstudent {intnum; charname[20]; charsex; intage; floatscore; charaddr[30]; };结构体变量的定义结构体变量的定义结构体变量的定义结构体变量的引用结构体变量的初始化结构体变量的赋值嵌套的结构体§12.3结构体数组结构体数组的初始化赋值§12.4结构体指针变量12.4.1指向结构体变量的指针变量例:#include<stdio.h> voidmain() {structstudent {intnum; charname[20]; floatscore; }stu1={1301,”ZhangSan”,82.50},*pstu; pstu=&stu1; printf(“No.%d,Name:%s,Score:%f\n”, stu1.num,stu1.name,stu1.score); printf(“No.%d,Name:%s,Score:%f\n”, (*pstu).num,(*pstu).name,(*pstu).score); printf(“No.%d,Name:%s,Score:%f\n”, pstu->num,pstu->name,pstu->score); }12.4.2指向结构体数组的指针变量例:#include<stdio.h> voidmain() {structstudent {intnum; charname[20]; floatscore; }stu[3]={{1301,”ZhangSan”,57}, {1302,“LiSi”,82.50},{1303,“WangWu”,69}}; structstudent*ps=stu; ps++; printf(“No.%d,Name:%s,Score:%f\n”, ps->num,ps->name,ps->score); }§12.5向函数传递结构体(3种方式)2.用结构体变量作为函数参数,向函数传递结构体的 完整结构。§12.6共用体共用体的定义共用体变量的说明(3种形式)共用体与结构体的区别共用体变量的引用#include<stdio.h> #definePN3 voidmain() {struct {charname[10]; intage; charjob; union {intclass; charoffice[10]; }units; }body[PN];intn,i; for(i=0;i<PN;i++) {printf(“inputname,age,jobanddepartment\n”); scanf(“%s%d%c”,body[i].name,&body[i].age, &body[i].job); if(body[i].job==‘s’) scanf(“%d”,&body[i].units.class); elsescanf(“%s”,body[i].units.office); }printf(“name\tage\tjob\tclass/office\n”); for(i=0;i<PN;i++) {if(body[i].job==‘s’) printf(“%s\t%d\t%3c\t%d\n”,body[i].name, body[i].age,body[i].job,body[i].units.class); else printf(“%s\t%d\t%3c\t%s\n”,body[i].name, body[i].age,body[i].job,body[i].units.office); } }§12.7枚举数据类型一般形式:enum枚举名 {枚举值表 }; 在枚举值表中应罗列出所有可用值,这些值称之为枚举元素。 例:enumweekday {sun,mon,tue,wed,thu,fri,sat}; 声明了一个枚举类型enumweekday,可以用此类型来定义变量,该变量只能取7天中的某一天。枚举变量的说明(3种形式)枚举变量的赋值和使用枚举变量的赋值和使用枚举变量的赋值和使用用typedef定义数据类型用typedef定义数据类型用typedef定义数据类型§12.8动态数据结构——单向链表二、链表的定义 用一个指针变量head指向第1个结点的首地址,以后每个结点都分为两个域,一个是数据域,存放各种实际的数据;另一个域是指针域,存放下一个结点的首地址。最后一个结点因无后续结点连接,其指针域可赋予NULL。 这种连接方式,在数据结构中称为链表。 链表中每一个结点都是同一种结构类型。例:一个存放学生的学号和成绩的结点为: structstudent1 {intnum; floatscore; structstudent1*