考试辅导:C语言教程第七章:结构与联合

考试辅导:C语言教程第七章:结构与联合,第1张

考试辅导:C语言教程第七章:结构与联合,第2张

第7章:结构和联合
结构类型的定义和结构变量的描述。

在实际问题中,一组数据往往有不同的数据类型。例如,在学生登记表中,姓名应该是字符型;学号可以是整数或字符类型;年龄应为整数;性别应为字符型;分数可以是整数也可以是实数。显然你不能用数组来存储这组数据。因为数组中所有元素的类型和长度必须一致,所以编译器系统很容易处理它们。为了解决这个问题,C语言中给出了另一种类型的构造数据——“结构”。它相当于其他高级语言中的记录。

“结构”是一种建筑类型,由若干“构件”组成。每个成员都可以是基本数据类型或构造类型。结构是一种“构造”的数据类型,所以必须先定义,才能解释和使用,也就是构造。就像在解释和调用一个函数之前定义它一样。

一、结构的定义

定义结构的一般形式是:
struct结构名
{
成员表列
};
成员表由几个成员组成,每个成员都是该结构的一部分。还必须以
类型描述符成员名称的形式为每个成员提供类型描述;
成员名的命名应符合标识符的书写规则。示例:
struct stu
{
int num;
char name[20];
char sex;
浮动分数;
};
在这个结构定义中,该结构被命名为stu,由4个成员组成。第一个成员是num,一个整数变量;第二个成员是name,一个字符数组;第三个成员是性别,一个性格变量;第四个成员是score,一个实变量。注意,括号后面的分号是必不可少的。定义了结构之后,就可以解释变量了。所有被描述为结构stu的变量都由上述四个成员组成。因此,该结构是一个复杂的数据类型,是一组具有固定数量和不同类型的有序变量。

二。结构类型变量的描述

有三种方法可以解释结构变量。以上面定义的stu为例来说明。
1。先定义结构,再解释结构变量。例如
structs tu
{
intnum;
char name[20];
char sex;
浮动分数;
};
struct stu boy1,boy2
它表明两个变量boy1和boy2是stu结构类型。还可以用宏定义做一个符号常量来表示一个结构类型,例如:
# define stu struct stu
stu
{
intnum;
char name[20];
char sex;
浮动分数;
};
斯图男孩1,男孩2;

2.在定义结构类型时解释结构变量。示例:
struct stu
{
int num;
char name[20];
char sex;
浮动分数;
}男孩1,男孩2;

3.直接解释结构变量。示例:
struct
{
int num;
char name[20];
char sex;
浮动分数;
}男孩1,男孩2;

第三种方法和第二种方法的区别在于,第三种方法省略了结构名,直接给出了结构变量。三种方法中解释的boy1和boy2变量的结构如图7.1所示。在解释了boy1和boy2变量是stu类型之后,这两个变量的每个成员都可以被赋值。在上面stu结构的定义中,所有成员都是基本数据类型或者数组类型。成员也可以是结构,即嵌套结构。例如,图7.2显示了另一种数据结构。根据图7.2可以给出以下结构定义:
struct date {
int month;
int day;
int年;
}
struct {
int num;
char name[20];
char sex;
结构日期生日;
浮动分数;
}男孩1,男孩2;
首先定义一个结构日期,由月(月)、日(日)、年(年)三个成员组成。当定义和描述变量boy1和boy2时,它们的成员生日被描述为数据结构类型。成员名可以与程序中的其他变量同名,而不会互相干扰。结构变量成员的表示在程序中使用结构变量时,往往不作为一个整体使用。

在ANSI C中,除了允许同类型的结构变量相互赋值之外,结构变量的使用,包括赋值、输入、输出、运算等。,一般是由结构变量的成员来实现的。

结构变量成员的一般形式是:结构变量名。成员名,例如:boy1.num,第一个人的学号,boy2.sex,第二个人的性别。如果成员本身是一个结构,必须一步一步找到最低的成员才能使用。比如:boy1.birthday.month,第一个人出生的月份的成员,在程序中可以单独使用,和普通变量完全一样。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 考试辅导:C语言教程第七章:结构与联合

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情