结构体、共用体和枚举类型数据
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
x1 或x2
num name sex
age
birthday
month day
year
addr
几点 1. 类型名与变量名是不同的概念
说明:
2. 每一个成员的作用如同该类ቤተ መጻሕፍቲ ባይዱ的变量 3. 成员名与程序中的变量名可相同但意义不同
整理ppt
7
➢2、 结构体变量初始化
结构的初始化就是指结构变量的初始化;先 定义结构,在定义结构变量时对每个成员赋初值
数之前要先定义函数一样。
整理ppt
2
➢结构体的定义
定义一个结构的一般形式为: struct 结构名 { 成员表列
};
对每个成员也必须作类型说明,其形式为: 类型说明符 成员名;
成员名的命名应符合标识符的 struct stu
书写规定。例如:
{
int num;
char name[20];
char sex;
如:struct student
{ unsigned No;
char name[20];
char sex;
float score;
};
struct student x1={8906, "Li Ming ", 'M', 85.5};
整理ppt
8
若 x1 的 起 始 地址为2000,则 x1 在内存中占有 的存储单元为:
共用27个字节 的连续单元
2000 8906 2002 L
i
M i n g \0 2021 2022 M 2023 85.5
2026
整理ppt
No
name[20] sex score
9
结构定义与变量定义及初始化合二为一:
struct exp { int a;
float b; char yn[8]; } x={1234, 56. 7, "test"}; 但不能这样写:×
x1.name: 表示x1的名字
注意:
1. 只能用变量的成员,不可用结构变量名直接运算。
2. 每一个成员的作用与其同类型的简单变量的引用
相同。
整理ppt
11
2)箭头运算符:
例:struct student
{ char name [10];
char sex; int age; float score; char addr[20]; } x1;
结构体变量定义:
};
struct student x1, x2; 类型标识符
则 x1, x2为student 型数据。
结构型整理变ppt量,x1,
x2可存放studen4 t类
2)在定义结构体类型的同时定义变量:
定义形式 struct 结构体名 { 成员表列 } 变量名表列;
例:struct student
{ int num;
char name[20];
char sex;
int age;
char addr[30];
} x1, 整x理2p;pt
5
3. 直接定义结构类型变量
定义形式 struct {成员表列} 变量名表列;
不出现结构体类型名
如:struct
{ int num char name[20]; char sex; int age;
则p为结构指针变量,它可用来存 放student型变量的地址 x1
令 p=&x1;
p name sex
则 p为x1的首地址.
age
score
struct student p;
访问结构成员:
addr
pname 表示x1的姓名;等价于 (*p).name或x1.name
page 表示x1的年龄;等整价理pp于t (*p).age或x1.age 12
第9章 结构体、共用体和枚举类型数据 ➢9.1 结构体类型数据
➢9.2 共用体类型数据
➢9.3 枚举类型数据
➢9.4 用TYPEDEF定义类型
➢9.5 动态存储分配——链表
整理ppt
1
§ 9.1 结构体类型数据
➢9.1.1. 结构体的概念及其定义
结构体(structure)相当于其它高级语言中的“记
➢4、结构体的输入和输出
只能对结构变量的成员进行输入/输出 若有 struct student h; 则:scanf("%s", &h); 错误 printf("%s", h);
原因:结构体变量中包含有多个不同类型的数据项。 正确方法:对结构体变量各成员的值进行输入/输出。
如上例:scanf("%d%s", &h.num, &h.name); printf("%d%s", h.num, h.name);
struct exp { int a=1234;
float b=56.7; char yn[8]="test"; } x;
整理ppt
10
➢3、结构体变量的引用
访问结构变量实质上是引用其成员;有两种 运算符可访问结构成员
1)圆点运算符
如:x1为struct student型变量,则
x1.No: 表示x1的学号
整理ppt
13
➢9.1.3 结构体数组
➢1、 结构体数组的定义
结构数组的定义方法和结构变量相似(也有三种方 法),只需说明它为数组类型即可。例如:
struct stu { int num; char *name; char sex; float score; }; struct stu boy[5];
录”nu。m name sex score age
addr
10010 LiFun M 87.5 18 Beijing
➢结构体概念
“结构”是一种构造类型,它是由若干“成员”组
成的。 每一个成员可以是一个基本数据类型或者又是一
个构造类型。 结构既是一种“构造”而成的数据类型,
在说明和使用之前必须先定义它,如同在说明和调用函
float score;
整理ppt };
3
➢9.1.2 结构体类型变量的定义和引用
➢1、结构体类型变量的定义(方法有三)
1)先定义结构体类型再定义结构体变量
例: struct student
{ int num;
char name[20];
char sex;
int age;
float score; char addr[30];
char addr[30];
} x1, x2;
整理ppt
6
补充:结构体的嵌套定义
struct date { int month; int day; int year; };
struct student { int num; char name[20]; char sex; int age; struct date birthday; char addr[30]; } x1, x2;