声明好结构体以后,就可以像用int、char等基本数据类型一样去定义结构体变量、指针和数组了
有以下4种定义方式:
①紧跟在结构体类型声明之后进行定义
struct student
{
char name[20];
int age;
double score;
}std1; *pstd=&std1, stds[3];
此处在声明student结构体类型的同时定义了结构体变量std1、结构体指针pstd和具有3个结构体元素的数组stds
②在声明一个无名结构体类型的同时,直接进行定义
struct //省略了结构体名称,是一次性的
{
……
}std1, *pstd=&std1, stds[10];
这种方式与第一种方式的区别仅在于省略了结构体名称,可以称为匿名结构体通常用于不需要再次定义此结构体变量的情况
③先声明结构体类型,再单独定义变量
struct student
{
……
};
student std1, *pstd=&std1, stds[10];
④声明一个结构体类型的同时,使用typedef给结构体声明一个新的名称
typedef struct //此处省略了结构体名称
{
……
}STR;
STR std 1, *pstd=&std1, stds[10];
或者在声明完结构体student后,再用typedef重新声明一个新类型名
例如:typedef student STR;
此处STR是一个具体的结构体类型名,可以用它来定义结构体变量,如同使用int、char一样