- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4字节
30字节
…..
结构体类型定义描述结构 的组织形式,不分配内存
c语言-结构体与共用体
11.2 定义结构体类型变量的方法
方法一:先声明结构体类型再定义变量名
一般形式
struct 结构体名
{ 类型标识符 成员名; 类型标识符 成员名; …………….
};
struct 结构体名 变量名表列;
c语言-结构体与共用标
理解为什么使用结构 定义结构 声明结构变量 访问结构成员 掌握结构作为函数参数的用法
c语言-结构体与共用体
11.1 概述
引入:
数据的基本类型:整、实、字符。 数组是构造类型:每个元素为同一类型
有些问题仅用基 本类型和数组来 描述是无法实现 的?
c语言-结构体与共用体
第11章 结构体与共用体
概述 定义结构体类型变量的方法 结构体变量的引用 结构体变量的初始化 结构体数组 指向结构体类型数据的指针 共用体 用typedef定义类型
c语言-结构体与共用体
回顾
基本数据类型:整型、实型、字符型等; 构造类型:数组、结构体、公用体 数组:有序数据的集合,每一个元素都属 于同一个数据类型。
结构体变量的初始化形式二:
struct 结构体名 {
类型标识符 成员名; 类型标识符 成员名;
……………. }结构体变量={初始数据};
例 struct student { int num; char name[20]; char sex; int age; char addr[30]; }stu1={112,“Wang Lin”,‘M’,19, “200 Beijing Road”};
返回
举例:如学生情况
Num Name sex
Agg Score Addree
整型 1982 1985
字符串 字符 整形 实型
这些数据类型虽不相 张三同,但F它们却是25有机 95.5
的整体,若将它们分 李四别定义M,则难以20反映 100
它们之间的内在联系 。 如何解决呢?用结构 体。
字符串 武汉 广州
{ 类型标识符 成员名; 类型标识符 成员名; …………….
}; struct 结构体名 结构体变量={初始数据};
例 struct student
{ int num;
char name[20];
char sex;
int age;
char addr[30];
};
c语言-结构体与共用体
返回
struct student stu1={112,“Wang Lin”,‘M’,19, “200 Beijing Road”};
c语言-结构体与共用体
结构体变量的初始化形式三:
struct {
类型标识符 成员名; 类型标识符 成员名;
……………. }结构体变量={初始数据};
例 struct { int num; char name[20]; char sex; int age; char addr[30]; }stu1={112,“Wang Lin”,‘M’,19, “200 Beijing Road”};
c语言-结构体与共用体
11.3 结构体变量的引用
引用规则
1. 结构体变量不能整体引用,只能引用变量成员 2. 引用方式:结构体变量名.成员名 3. 可以将一个结构体变量赋值给另一个结构体
变量 4. 结构体嵌套时逐级引用
c语言-结构体与共用体
返回
11.4 结构体变量的初始化
形式一:struct 结构体名
……………. }变量名表列;
c语言-结构体与共用体
方法三:直接定义结构体类型变量
一般形式:
例 struct { int num;
char name[20]; char sex; int age; float score; char addr[30]; }stu1,stu2;
struct {
类型标识符 成员名; 类型标识符 成员名;
返回
方法二:在声明变量的同时定义变量
一般形式
例 struct student { int num;
char name[20]; char sex; int age; float score; char addr[30]; }stu1,stu2;
struct 结构体名 {
类型标识符 成员名; 类型标识符 成员名;
}stu[2];
num 25B name
sex age num name sex age
c语言-结构体与共用体
stu[0] stu[1]
返回
结构体数组的初始化
例 struct { int num; char name[20]; char sex; int age; }stu[ ]={{……},{……},{……}};
c语言-结构体与共用体
11.5 结构体数组
定义结构体数组:三种形式
形式一: 形str式uc二t s:tudent 形ssstttr式rru{}{uu{}cs三cct;tttus:[siiccicciti2ccinnnntuhhhhnnuhh]ttttdaaaatt;daaaaerrrrnnaerrggnnnssnguunnseeuteeaaemmte;;amxxmm;xm;;;;s;;eeteu[[[22[22000]]];];;;
c语言-结构体与共用体
结构体是一种构造数据类型
用途:把不同类型的数据组合成一个整体------自定义数据类型
结构体类型定义
合法标识符
struct [结构体名]
可省:无名结构体
{
struct是关键字, 不能省略
类型标识符 成员名; 类型标识符 成员名;
……………. };
成员类型可以是 基本型或构造型
c语言-结构体与共用体
例子图解
例 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; };
结构体类型定义的作用域
num name
sex age
score
addr
…
2字节 20字节 1字节 2字节
……………. }变量名表列;
用无名结构体直接定义 变量只能一次。
c语言-结构体与共用体
说明:
1. 结构体类型与结构体变量概念不同
• 类型:不分配内存;
变量:分配内存
• 类型:不能赋值、存取、运算; 变量:可以
2. 结构体可嵌套
3. 结构体成员名与程序中变量名可相同,不会混 淆
4. 结构体类型及变量的作用域与生存期