内容正文:
第八章 复杂数据类型--结构体与共用体
1
CONTENTS
目录
01
02
结构体变量定义、初始化及应用
结构体的认知
03
结构体数组及应用
04
共用体及其应用
C语言
知识树
My First Template
4、共用体及其应用
C语言程序设计
4
C语言程序设计 共用体及应用
C语言
知识回顾
结构体
结构体是一种构造数据类型
用途:把不同类型的数据组合成一个整体-------自定义数据类型
结构体类型定义
My First Template
C语言
问题:将学生的信息和老师的信息同时放到一张表中该怎么实现?
C语言程序设计 共用体及应用
name age job class office
张三丰 30 老师 计算机
王红 18 学生 01
name age job Class/offic
张三丰 30 老师 计算机
王红 18 学生 01
My First Template
C语言
本次任务
利用共用体完成复杂学生信息的采集与输出
C语言程序设计 共用体及应用
My First Template
C语言
任务描述
设有一个教师和学生通用的表格,有姓名、年龄、职业、单位4项。在职业项中,用‘s’表示学生,用‘t’表示教师。编程输入人员数据,并且输出。
C语言程序设计 共用体及应用
My First Template
CONTENTS
内容
01
共用体的定义
02
共用体变量的定义
03
04
共用体变量的初始化
05
任务实现
共用体变量的引用
9
共用体的定义
01
C语言
共用体(也称为联合)也是一种构造数据类型
用途:共用体是将不同类型的数据组织在一起共同占用同一段内存的一种构造数据类型。
共用体类型定义
union 共用体类型的名称
{ 数据类型 成员名1;
数据类型 成员名2;
...
数据类型 成员名n;
} ;
union是关键字,
不能省略
合法标识符
可省
共用体
C语言程序设计 共用体及其应用
My First Template
C语言
例 union department
{int class1;
char office[20];
};
例子图解
C语言程序设计 共用体及应用
使用该类型定义变量的时候,所占内存空间不是所有变量之和,而是占用内存最长的那个变量或者数组所占的空间。
My First Template
共用体变量的定义
02
C语言
三种形式:
形式一:
union department
{int class;
char office[20];
};
union department a,b;
形式二:
union department
{int class;
char office[20];
}a,b;
形式三:
union
{int class;
char office[20];
}a,b;
共用体变量的定义
C语言程序设计 共用体及应用
My First Template
共用体变量的初始化
03
C语言
形式一:
共用体变量定义的同时初始化
例 union Data
{ int i;
char c;
float f;
};
union Data d1={10};
共用体变量的初始化
C语言程序设计 共用体及应用
尽管只能为第一个成员赋值,但必须用大括号括起来。
My First Template
C语言
形式二:
共用体变量定义后,再对某个成员初始化。
例 union Data
{ int i;
char c;
float f;
}d1;
d1.c=‘a’;
共用体变量的初始化
C语言程序设计 共用体及应用
My First Template
共用体变量的引用
04
C语言
引用规则
对共用体变量的使用,包括赋值、使用只能是对变量的成员进行。
成员(分量)运算符
优先级: 1
结合性:从左向右
引用方式: 共用体变量名.成员名
共用体变量的引用
C语言程序设计 共用体及应用
My First Template
任务实现
05
C语言
任务描述
设有一个教师和学生通用的表格,有姓名、年龄、职业、单位4项。在职业项中,用‘s’表示学生,用‘t’表示教师。编程输入人员数据,并且输出。
C语言程序设计 共用体及应用
My First Template
C语言
任务实现
C语言程序设计 共用体及应用
My First Template
$$