下载此文档

第七章 结构类型数据描述.ppt


文档分类:IT计算机 | 页数:约35页 举报非法文档有奖
1/35
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/35 下载此文档
文档列表 文档介绍
第7章结构类型数据描述
结构体
共用体
枚举类型
用 typedef 定义类型名
位段结构
第7章结构类型数据描述
这种多项组合又有内在联系的的数据称为结构体
(structure)。它是可以由用户自己定义的。
结构体
在实际应用中,有时需要将一些有相互联系而类型
不同的数据组合成一个有机的整体,以便于引用。如学
生学籍档案中的学号、姓名、性别、年龄、成绩、地址
等数据,对每个学生来说,除了其各项的值不同外,但
表示形式是一样的。
num
name
sex
age
score
Addr
10010
Li Fun
F
18

Beijing
1. 概述
2. 结构体类型变量的定义
两者缺一不可
1) 结构体类型的定义形式
struct 结构体名
{ 分量表};
其中“分量表”中的分量也应进行类型说明,
例如:
struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
};
即:
类型标识符分量名;
分量描述
由用户定义的“结构体类型”,可以同标准类型一样作为定义变量的类型。相当于PASCAL语言中的记录(record)。
2) 定义结构体类型变量的方法
先定义结构体类型再定义变量
定义了结构体类型 struct student 后,可以用它
定义变量。
注:不能写成 struct st1,st2; 必须同时指定结构体名。
为了方便起见,可以在程序开头定义符号常量进行
简化。如:
如:
struct student st1, st2;
则在程序中可以直接写成:
STUDENT
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
};
#define STUDENT struct student
STUDENT st1, st2;
在定义类型的同时定义变量
如:struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}st1,st2;
struct 结构体名
{
分量表;
} 变量表;
则一般定义形式为:
直接定义结构类型变量
定义形式为: struct { 分量表; } 变量表;
在 struct 后不出现结构体名,因此也不能再以此定
义相同的结构体变量。

类型与变量是两个不同的概念。一般先定义结构体类
型,再定义变量为该类型。变量可以赋值、存取或运
算,而类型没有这些操作。在编译时,对变量分配空
间,对类型来说不存在分配空间。
对结构体中的分量可以单独使用。
分量也可以是一个结构体变量。如 student 中要增加
birthday,则可按如下方式进行定义:
struct date
{ int month;
int day;
int year;
};
struct student
{ 
struct date birthday;

}st1, st2;
先定义一个日期结构
该分量也是一个结构体
分量名可以与程序中的变量名相同,两者之间不会
产生混淆。
4. 结构体类型变量的引用
引用结构体变量应遵守如下规则:
1) 结构体变量中分量的引用方式
结构体变量名分量名[ 二级分量名]
其中:“”为分量运算符, 在所有的运算符中优先级最高。
2) 结构体变量的分量本身又属于结构体类型时只能对最
低级分量进行操作。
如:
;
;
;
写成 并不会访问st1中的birthday,只会
引起警告错误。
3) 不能将一个结构体变量直接进行输入输出,只能对结
构体变量的各分量进行输入输出。
如:
scanf(“%d,%s,%c,%d,%f,%s”,&st1);
错误
printf(“%d,%s,%c,%d,%f,%s”,st1);
错误
printf(“%s,%d”,,);
正确
4) 分量和结构体变量的地址均可以被引用
如:
scanf(“%d”,&);

printf(“%x”,&st1)

第七章 结构类型数据描述 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数35
  • 收藏数0 收藏
  • 顶次数0
  • 上传人中国课件站
  • 文件大小0 KB
  • 时间2011-10-11