C说话教程第七章:机关与连合(1)

机关类型定义和机关变量分析');

  在实践结果中,一组数据每每具有分歧的数据类型。比喻, 在师长教师登记表中,姓名应为字符型;学号可为整型或字符型; 年事应为整型;性别应为字符型;下场可为整型或实型。 显然不能用一个数组来存放这一组数据。 因为数组中各元素的类型和长度都必需分歧,以便于编译系统处置惩罚。为体会决这个结果,C说话中给出了另一种机关数据类型——“机关”。 它相称于其它初级说话中的记载。

  “机关”是一种机关类型,它是由几何“成员”构成的。 每一个成员可以是一个基本数据类型或许又是一个机关类型。 机关既是一种“机关”而成的数据类型, 那么在分析');和运用之前必需先定义它,也就是机关它。如同在分析');和挪用函数之前要先定义函数一样。

一、机关的定义

定义一个机关的普通形式为:
struct 机关名
{
成员表列
};
成员表由几何个成员构成, 每个成员都是该机关的一个构成局部。对每个成员也必需作类型分析');,其形式为:
类型分析');符 成员名;
成员名的命名应契合标识符的书写划定。比喻:
struct stu
{
int num;
char name[20];
char sex;
float score;
};
  在这个机关定义中,机关名为stu,该机关由4个成员构成。 第一个成员为num,整型变量;第二个成员为name,字符数组;第三个成员为sex,字符变量;第四个成员为score,实型变量。 应详尽在括号后的分号是不可少的。机关定义之后,即可停止变量分析');。 凡分析');为机关stu的变量都由上述4个成员构成。由此可见, 机关是一种巨大的数据类型,是数目安稳,类型分歧的几何有序变量的调集。

二、机关类型变量的分析');

分析');机关变量有以下三种体例。以下面定义的stu为例来加以分析');。
1. 先定义机关,再分析');机关变量。如:
struct stu
{
int num;
char name[20];
char sex;
float score;
};
struct stu boy1,boy2;
申了解理会两个变量boy1和boy2为stu机关类型。也可以用宏定义使一个符号常量来体现一个机关类型,比喻:
#define STU struct stu
STU
{
int num;
char name[20];
char sex;
float score;
};
STU boy1,boy2;

2. 在定义机关类型的同时分析');机关变量。比喻:
struct stu
{
int num;
char name[20];
char sex;
float score;
}boy1,boy2;

3. 间接分析');机关变量。比喻:
struct
{
int num;
char name[20];
char sex;
float score;
}boy1,boy2;

  第三种体例与第二种体例的区别在于第三种体例中省去了布局名,而间接给出机关变量。三种体例中分析');的boy1,boy2变量都具有图7.1所示的机关。申了解理会boy1,boy2变量为stu类型后,即可向这两个变量中的各个成员赋值。在上述stu机关定义中,齐备的成员都是基本数据类型或数组类型。成员也可以又是一个机关, 即构成了嵌套的机关。比喻,图7.2给出了另一个数据机关。 按图7.2可给出以下机关定义:
struct date{
int month;
int day;
int year;
}
struct{
int num;
char name[20];
char sex;
struct date birthday;
float score;
}boy1,boy2;
  起首定义一个机关date,由month(月)、day(日)、year(年) 三个成员构成。 在定义并分析');变量 boy1 和 boy2 时, 其中的成员birthday被分析');为data机关类型。成员名可与顺序中其它变量同名,互不搅扰。机关变量成员的体现体例在顺序中运用机关变量时, 每每不把它作为一个集团来运用。



版权声明: 原创作品,容许转载,转载时请务必以超链接形式标明文章 原始起因 、作者信息和本声明。不然将穷究功令责任。

原文地址:https://www.cnblogs.com/zgqjymx/p/1975586.html