1是结构类型的声明
struct结构类型名
{
成员表
}
成员表由若干个成员组成,每个成员都是该结构的一个组成部分;
对每个成员也必须做类型说明,其形式如下:类型说明符 成员名(成员名的命名要符合标示符的书写规定)
例如
struct StudentType
{
int num;
char *name;
char sex[3];
float score;
} ;
结构名为StudentType,此结构由4个成员组成,第一个成员为num,整形变量,第2个成员为name,字符指针,第3个成员为sex,字符指针;第4个成员为score,实型变量
类型结构StudentType的示意图num name sex score,
注意:括号后的分号是不可缺少的
结构声明后即可进行变量定义,凡定义为结构StudentType的变量都由上述4个成员组成,结构是一种构造的数据类型,是数目固定,类型不同的若干有序变量的集合;
2结构类型变量的定义
声明了结构类型,要在程序中使用结构类型,还应当定义结构类型的变量,可采用如下3种方法定义结构类型变量
(1)先声明结构类型,再定义结构类型变量
struct
{
成员表
};
struct结构类型名 结构变量表;
上面结构变量表中不同结构变量之间用逗号隔开
struct StudentType
{
int num;
char *name;
char sex[3];
float score;
} ;
struct StudentType boy,girl;
上面定义了2个类型为StudentType的结构类型变量boy和girl
2在声明结构类型的同时定义结构类型变量
struct结构类型名
{
成员名
}结构类型表;
struct StudentType
{
int num;
char *name;
char sex[3];
float score;
}boy,girl;
3直接定义结构类型变量,这种定义一个结构变量的一般形式如下:
struct
{
int num;
char *name;
char sex[3];
float score;
}boy,girl;
第3种方法省略了结构类型名,而是直接给出结构类型变量名,而是直接给出结构类型变量;
3种方法中说明的boy,girl变量都具有之前的结构
定义了boy,girl变量未StudentType类型后,就可以向这2个变量中的各个成员赋值。在上面StudentType结构类型声明中所有成员都是基本数据类型或者数组类型;成员也可以使又是一个结构,即构成了嵌套的结构类型
struct DateType
{
int year;
int month;
int day;
};
struct StudentType
{
int num;
char *name;
char sex[3];
struct DateType birthday;
float score;
}boy,girl;
首先声明一个结构类型DateType,有年,月,日这3个成员组成,在定义结构类型变量boy和girl时,其中的成员birthday被说明为DateType结构类型,成员名可与程序中的其他变量同名
成员名可以与程序中的变量同名,也可以与结构类型名相同,而不会混淆,
在asci c中除了允许相同类型的结构变量相互赋值以外,一般对结构变量的使用,包括赋值,输入,输出和运算都是通过结构变量的成员来是实现的