第8章结构体.ppt

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ppt = &pt;
怎样通过pt访问pt的成员?
– pt.x = 0;
/*成员运算符*/
怎样通过ppt访问pt的成员?
– (*ppt).x = 0;
– ppt->x = 0; – 第二种更常用
2020/10/5
16
结构体与指针
指向结构体变量的指针 结构体数组与指针 链表
2020/10/5
17
指向结构体变量的指针
struct point {
pt
ppt
x
int x;
y
int y;
};
struct point pt; /*定义结构体变量*/
struct point *ppt; /*定义结构体指针*/
定义一个"别名"。
举例:
typedef struct student STUD; STUD student1,student2;
STUD与 struct student类型是同义词
2020/10/5
7
结构体变量的内存占用
按照域表中域的先后顺序依次在内存中划分存 储单元给每个域。 直接用结构体的每个成员类型所占内存字节数 的和作为一个结构体实际所占的内存字节数是 不正确的。 我们用sizeof函数获得结构体变量所占的字节 数。
构成结构体类型 的数据称为结构 体的成员,也称 元素或域
2020/10/5
5
结构体变量的定义
先定义结构体类型再定义变量名
struct student student1,student2;
在定义类型的同时定义变量
struct student {
int num; char name[20]; char sex; float shx; float jsj; float aver; float sum; } student1,student2;
2020/10/5
9
举例
struct s { int x;
int y; } vs ;
A) s . x = 10 ; C) struct va;
va . x = 10;
B) s . vs . x = 10; D) struct s va = {10};
2020/10/5
10
结构体变量的输入与输出
C语言规定,不能将一个结构体变量作为一个 整体实施输入、输出的操作,只能对每个具体 的成员进行输入、输出操作。
第8章 结构体
本章内容
结构体类型的定义 结构体变量的定义 结构体数组 结构体与指针 链表的概念及操作
2020/10/5
2
引例
输入10位同学的一组信息,包括学号、姓名、性 别、数学成绩、计算机成绩,求得每位同学的平 均分和总分,然后按照总分从高到低排序。 (8-引例)
2020/10/5
3Βιβλιοθήκη Baidu
结构体类型与变量的概念
struct {
int char char float float float float
num; name[20]; sex; shx; jsj; aver; sum;
} student1,student2;
直接定义结构体变量(不出现结构体类型名)
2020/10/5
6
用户自定义类型名
关键字typedef 概念:关键字typedef用来为已经定义的数据类型
举例:
struct student st1= {101,"zhangsan",'M',85,69};
2020/10/5
11
结构体类型的嵌套
结构体类型中的成员也可以是结构体。
如:
struct date
struct stud
{char
name[20];
{int month; int day; int year;
int
num;
char
sex;
struct date birthday;
float
shx;
};
float
jsj;
float
aver;
float
sum;
};
2020/10/5
12
struct workers {int no; char name[20]; char sex; struct {int day; int month; int year; }birth; }w;
2020/10/5
8
结构体变量的引用
一般形式: 结构体变量名 . 成员名
结构体变量的初始化
举例: struct student st1= {101,"zhangsan",'M',85,69};
struct student {
int num; char name[20]; char sex; float shx; float jsj; float aver; float sum; };
int age; }; struct person class[10]= {"John",19,"Paul",17,"Mary",18,"Adam",16}; 能打印出字母A的语句应为:
2020/10/5
15
举例
引例: 输入10位同学的一组信息,包 括学号、姓名、数学成绩、计 算机成绩,求得每位同学的平 均分和总分,然后按照总分从 高到低排序。
结构体类型 – 把关系紧密且逻辑相关的多种不同类型的数据组织到
统一的名字之下,这样的集合称为结构体类型。
结构体变量 – 结构体类型的变量占用相邻的一段内存单元
2020/10/5
4
结构体类型的定义
一般形式:
struct 结构体类型名 {
类型关键字 成员名1; 类型关键字 成员名2; …... 类型关键字 成员名n; };
"zhang", 001, 95.0, 64.0 "wang", 002, 92.0, 97.0 "zhao", 003, 85.0, 78.0 "li", 004, 96.0, 88.0 "zhou", 005, 91.0, 96.0 "wu", 006, 93.0, 78.0 "lin", 007, 98.0, 97.0 "ma", 008, 89.0, 93.0 "zhen", 009, 88.0, 90.0 "yu", 010, 94.0, 90.0
2020/10/5
举例
若w中的"生日"为1963年10 月25日,如何编写相应的 语句
13
结构体数组
概念:由若干相同结构体类型的数据组成的有 序集合,叫做结构体数组。
定义形式:同基本数据类型的数组定义方法
struct 结构体类型名 结构体数组名[元素个数];
2020/10/5
14
举例
struct person { char name[9];
相关文档
最新文档