结构体与共用体要点
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
类型,描述了这一类型的公共的数据成员变量。如 果在C程序中使用结构体类型,我们必须还要使用 到结构体变量。本节主要讲解结构体变量。
结构体变量的定义一般有3种定义的形式,如图8.5 所示。
结构体类型变量的 定义的方法
定义结构体类型之后再定 义结构体类型变量
定义的形式
struct 结构体类型名 结构体变量名列 表;
代码示例
struct student {
char sno; char name; int age; float height; float weight; }; struct student s1,s2;
定义结构体类型的同时定 义结构体类型变量
struct 结构体名 {
... }结构体变量名表;
struct student {
C语言中使用关键字 struct定义结构体
结构体的数据成员
struct 结构体名 {
数据类型 数据成员1; 数据类型 数据成员1;
…
数据类型 数据成员n;
};
结构体的数据成员
struct student {
char sno; char name; int aຫໍສະໝຸດ Baidue; float height; float weight; };
同其他数据类型一样,对结构体变量也可以在定义
时指定初始值。结构体变量初始化是根据结构体变 量定义的三种方式对应进行初始化的,形式如图8.8 所示。
结构体变量初 始化的形式
struct 结构体类型名 结构体变量名 ={数值1,数值2,…,数值n};
struct 结构体名 {
... }结构体变量名={数值1,数值2,…, 数值n};
struct {
... }结构体变量名={数值1,数值2,…, 数值n};
代码示例
struct s { char name[10]; int age; char sex; float score; }; struct s s1={"LiHai",20, 'M',90.5};
struct s { char name[10]; int age; char sex; float score; }s1={"LiHai",20, 'M',90.5};
student1
int sno; char name[20]; int age; float height; float weight;
student2
int sno; char name[20]; int age; float height; float weight;
...
student20
int sno; char name[20]; int age; float height; float weight;
匿名结构体类型的类 型名是没有的
结构体的定义格式
struct {
匿名结构体类型的 类型名是没有的
数据类型 数据成员1; 数据类型 数据成员1;
… 数据类型 数据成员n;
};
匿名结构体类 型定义示例
struct {
char int };
ch[2]; n;
结构体类型的定义只是定义了一个特定的复合数据
struct { char name[10]; int age; char sex; float score; }s1={"LiHai",20, 'M',90.5};
struct student {
char name[10]= "LiHai"; int age=20;
char sex='M'; float score=90.5; }s1;
char sno; char name; int age; float height; float weight; }s1,s2; int main() { … /*结构体变量s1和s2的数据成员引用*/ s1.name=”张三”; s2.name=”李四”; s1.age=18; s2.age=20; … return 0; }
int sno; char name[20]; int age; float height; float weight;
定义成一个结 构体类型
struct student
使用结构体代码 就可以简化了
struct student student1;
struct student student2;
… struct student student20;
char sno; char name; int age; float height; float weight; }s1,s2;/*s1和s2为该数据类型的变 量*/
匿名结构体类型只能在 定义结构体类型的同时 定义结构体变量
struct {
... }结构体变量名表;
struct {
char sno; char name; int age; float height; float weight; }s1,s2;
除了前面提到过的基本数据类型,C语言还支持一 些复杂的、自定义的数据类型。利用这些数据类型, 程序员可以处理复杂的数据。本章主要介绍三种自 定义的数据类型:结构体、共用体以及枚举类型。
结构体类型是不同类型数据的集合,它是用户自己 定义的数据类型。例如,现在要记录一个班级20名 学生的信息,包含学号、性别、名字等数据。单独 定义数组记录则显得很麻烦。C提供了结构体就可 以很容易地解决这个问题,如图8.1所示。
结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据的集 合,也叫结构。
结构体类型不同于基本数据类型。基本数据类型已 经在C语言中被定义好了,用户可以直接使用。而 结构体类型事先并不存在,需要用户根据自己的情 况进行定义。结构体的定义格式如图8.3所示。
结构体的定义格式
示例说明
C程序中,结构体变量的引用其实就是对结构体变 量的数据成员的引用。结构体变量中的数据成员引 用形式以及示例如图8.6所示。
结构体变量成员 引用格式
结构体变量名.数据成员名
C语言 中采用点运算符(也称为成员运算 符)“.”对结构体变量中的数据成员引用
结构体变量成员 引用示例
struct student {
这种直接在结构体中对数据成员初始化是错 误的,因为结构体中的数据成员是同种结构体变 量共有的属性,不能直接这样初始化。
结构体变量的定义一般有3种定义的形式,如图8.5 所示。
结构体类型变量的 定义的方法
定义结构体类型之后再定 义结构体类型变量
定义的形式
struct 结构体类型名 结构体变量名列 表;
代码示例
struct student {
char sno; char name; int age; float height; float weight; }; struct student s1,s2;
定义结构体类型的同时定 义结构体类型变量
struct 结构体名 {
... }结构体变量名表;
struct student {
C语言中使用关键字 struct定义结构体
结构体的数据成员
struct 结构体名 {
数据类型 数据成员1; 数据类型 数据成员1;
…
数据类型 数据成员n;
};
结构体的数据成员
struct student {
char sno; char name; int aຫໍສະໝຸດ Baidue; float height; float weight; };
同其他数据类型一样,对结构体变量也可以在定义
时指定初始值。结构体变量初始化是根据结构体变 量定义的三种方式对应进行初始化的,形式如图8.8 所示。
结构体变量初 始化的形式
struct 结构体类型名 结构体变量名 ={数值1,数值2,…,数值n};
struct 结构体名 {
... }结构体变量名={数值1,数值2,…, 数值n};
struct {
... }结构体变量名={数值1,数值2,…, 数值n};
代码示例
struct s { char name[10]; int age; char sex; float score; }; struct s s1={"LiHai",20, 'M',90.5};
struct s { char name[10]; int age; char sex; float score; }s1={"LiHai",20, 'M',90.5};
student1
int sno; char name[20]; int age; float height; float weight;
student2
int sno; char name[20]; int age; float height; float weight;
...
student20
int sno; char name[20]; int age; float height; float weight;
匿名结构体类型的类 型名是没有的
结构体的定义格式
struct {
匿名结构体类型的 类型名是没有的
数据类型 数据成员1; 数据类型 数据成员1;
… 数据类型 数据成员n;
};
匿名结构体类 型定义示例
struct {
char int };
ch[2]; n;
结构体类型的定义只是定义了一个特定的复合数据
struct { char name[10]; int age; char sex; float score; }s1={"LiHai",20, 'M',90.5};
struct student {
char name[10]= "LiHai"; int age=20;
char sex='M'; float score=90.5; }s1;
char sno; char name; int age; float height; float weight; }s1,s2; int main() { … /*结构体变量s1和s2的数据成员引用*/ s1.name=”张三”; s2.name=”李四”; s1.age=18; s2.age=20; … return 0; }
int sno; char name[20]; int age; float height; float weight;
定义成一个结 构体类型
struct student
使用结构体代码 就可以简化了
struct student student1;
struct student student2;
… struct student student20;
char sno; char name; int age; float height; float weight; }s1,s2;/*s1和s2为该数据类型的变 量*/
匿名结构体类型只能在 定义结构体类型的同时 定义结构体变量
struct {
... }结构体变量名表;
struct {
char sno; char name; int age; float height; float weight; }s1,s2;
除了前面提到过的基本数据类型,C语言还支持一 些复杂的、自定义的数据类型。利用这些数据类型, 程序员可以处理复杂的数据。本章主要介绍三种自 定义的数据类型:结构体、共用体以及枚举类型。
结构体类型是不同类型数据的集合,它是用户自己 定义的数据类型。例如,现在要记录一个班级20名 学生的信息,包含学号、性别、名字等数据。单独 定义数组记录则显得很麻烦。C提供了结构体就可 以很容易地解决这个问题,如图8.1所示。
结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据的集 合,也叫结构。
结构体类型不同于基本数据类型。基本数据类型已 经在C语言中被定义好了,用户可以直接使用。而 结构体类型事先并不存在,需要用户根据自己的情 况进行定义。结构体的定义格式如图8.3所示。
结构体的定义格式
示例说明
C程序中,结构体变量的引用其实就是对结构体变 量的数据成员的引用。结构体变量中的数据成员引 用形式以及示例如图8.6所示。
结构体变量成员 引用格式
结构体变量名.数据成员名
C语言 中采用点运算符(也称为成员运算 符)“.”对结构体变量中的数据成员引用
结构体变量成员 引用示例
struct student {
这种直接在结构体中对数据成员初始化是错 误的,因为结构体中的数据成员是同种结构体变 量共有的属性,不能直接这样初始化。