结构体变量的定义
结构体变量的基本定义方式与普通变量是相似的,但是由于结构体类型是在程序中自义的,因此结构体变量的定义就更加灵活,可以采用以下3种形式。
1.先定义结构体类型再定义结构体变量
如果程序中已经定义了结构体类型,可以使用如下形式定义结构体变量:
struct 结构体类型名 结构体变量名;
例如,使用前面定义的 student结构体类型来定义变量如下:
struct student stud1, stud2;
2.在定义结构体类型的同时定义结构体变量。
这种定义结构体变量的一般形式为
struct 结构体类型名
{
数据类型 成员名1
数据类型 成员名2
……
数据类型 成员名n;
}结构体变量名表;
例如
struct student
{
int id;
char name[20];
char gender;
double score;
} stul, stu2, stu3;
这里在定义结构体类型的同时,定义了3个结构体变量stu1、stu2和stu3。
3.直接定义结构体变量
这种方式不定义结构类型的名称,直接给出结构体类型并同时定义结构变量。一般形式为
struct
{
数据类型 成员名1;
数据类型 成员名2;
……
数据类型 成员名n;
}结构体变量名表;
例如:
struct
{
int id;
char name[20];
char gender;
double score;
} stu1,stu2,stu3;
注意:由于该方式没有类型名,也就无法记录该结构类型,因此在程序的其他位置无法再使用该类型定义结构变量。
结构体类型的成员变量也可以是结构类型。例如,下面的代码定义了一个结构体类型date表示日期类型,在定义表示图书的结构体类型book时,表示出版日期的成员变量 publish是 struct date类型。
struct date
{
int year;
int month;
int day;
};
struct book
{
char isbn[15];
char title[50];
struct date publish;//使用结构体成员表示出版日期
double price;
int quantity;
};