下载此文档

C语言程序设计课件PPT(A套)之第十章结构、联合与枚举类型.ppt


文档分类:IT计算机 | 页数:约69页 举报非法文档有奖
1/69
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/69 下载此文档
文档列表 文档介绍
结构、联合与枚举类型
第一节 结构类型
第二节 结构数组
第三节 结构指针
第四节 在函数之间传递结构
第五节 联合类型
第六节 枚举类型
第七节 用typedef定义类型
第八节 链表基础
问题的引出
用学号、姓名、性别、年龄、住址等属性来描述一个学生。
int num;
char name[20];
char sex;
int age;
char addr[30];
问题一:在程序中这些变量没有的内在联系。
问题二:如果有成百上千的学生,可能造成混乱。
一、结构类型的概念
第一节 结构类型
这些数据存放在内存的某个区域。
将此区域统一来使用,形成了结构体的概念。
结构是逻辑上相互联系的一组分量的集合。
结构中的分量可以有不同的类型数据,结构中的分量称为结构的成员。
num
name
sex
age
addr
10010
Li Fun
M
18
Beijing
第一节 结构类型
比较简单数据类型时的变量说明语句: int i;
struct 结构体名
{ 数据类型 成员名1;
数据类型 成员名2;
……
数据类型 成员名n;
};
二、结构类型的定义
struct为关键字
结构体名是用户定义的类型标识。
{ }中包围的是组成该结构的成员。
成员的数据类型既可以是简单的数据类型(int、char、float、double...),也可以是复杂的数据类型(数组类型和结构类型)。
第一节 结构类型
结构定义实例
为了描述日期可以定义如下结构:
struct date
{ int year; /* 年 结构成员的 */
int month; /* 月 数据类型是 */
int day; /* 日 整型 */
};
为了处理通信录,可以定义如下结构:
struct address
{ char name[30]; /* 姓名。字符数组 */
char street[40]; /* 街道名称 */
char city[20]; /* 城市 */
char state[2]; /* 省市代码 */
unsigned long zip; /* 邮政编码。 */
};
第一节 结构类型
在定义了某种类型的结构体后,就可以使用该类型的结构变量。
用类型说明语句说明结构变量
struct 结构体名 结构变量名;
系统为所说明的结构变量按照结构定义时说明的组成(成员分量),分配存储数据的实际内存单元。
例:将变量today说明为date型的结构变量:
struct date today;
说明多个address型的结构变量:
struct address wang, li, zhang;
结构变量同样有存储类型,存储特性与一般变量完全相同。
三、结构变量的说明
第一节 结构类型
结构变量占用内存情况
结构变量的各个成员分量在内存中占用连续存储区域,所占内存大小为结构中每个成员的占用内存的长度之和。
结构变量today和wang占用在内存的情况如图所示。
2字节
2字节
2字节
today (struct date)
6个字节
year
month
day
wang (struct address)
96个字节
30字节
40字节
20字节
2字节
4字节
name
street
city
state
zip
表示 int
表示 char
表示 unsigned long
第一节 结构类型
关于结构类型的说明
类型与变量是不同的概念。
在定义结构变量时一般先定义一个结构类型,然后 定义变量为该类型。
只能对变量赋值、存取或运算,而不能对一个类型赋值、存取或运算。
在编译时,对类型是不分配空间的,只对变量分配空间。
对结构中的成员,可以单独使用,它的作用与地位相当于普通变量。
成员也可以是结构变量。
成员名可以与程序中的变量名相同时,二者不代表同一对象。
第一节 结构类型
在定义结构时说明结构变量
例如:struct student
{ int num;
char name[20];
char sex; int age;
char addr[30];

C语言程序设计课件PPT(A套)之第十章结构、联合与枚举类型 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数69
  • 收藏数0 收藏
  • 顶次数0
  • 上传人aena45
  • 文件大小1.15 MB
  • 时间2021-01-15