一、结构体和结构体变量
- 结构体的定义形式为:
struct 结构体名{
结构体所包含的变量或数组
};
结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member)。请看下面的一个例子:
struct stu{
char *name; //姓名
int num; //学号
int age; //年龄
char group; //所在学习小组
float score; //成绩
};
stu 为结构体名,它包含了 5 个成员,分别是name、num、age、group、score。结构体成员的定义方式与变量和数组的定义方式相同,只是不能初始化。
注:(注意大括号后面的分号;不能少,这是一条完整的语句)
2.结构体变量
• 定义变量
例如:
struct stu stu1,stu2;//定义了两个变量stu1和stu2,他们都是stu类型,都有5个成员组成
注意关键字struct不能少。
• 定义结构体的同时定义结构变量
例如:
struct stu{
char *name; //姓名
int num; //学号
int age; //年龄
char group; //所在学习小组
float score; //成绩
} stu1,stu2; //将变量定义在结构体的最后即可
如果只需要stu1、stu2两个变量,后面不需要再使用结构体名定义其它变量,那么在定义时也可以不给出结构体名,如下所示:
struct { //没有写 stu
char *name; //姓名
int num; //学号
int age; //年龄
char group; //所在学习小组
float score; //成绩
} stu1,stu2;
二、typedef struct 的引入
• 定义结构体变量的时侯比较方便
例如:
typedef struct Student{
undefined int age;
char s;
}Stu;
定义结构体变量st1:Stu st1;
• 更简单的定义方法(直接省掉Student)
typedef struct{
undefined int age;
char s;
}Stu;
定义结构体变量st1:Stu st1;