结构体
为什么要有结构体?
我们知道数组可以存放同种类型的变量,那如果是不同类型的变量就需要用到结构体了。
结构体的定义:struct 结构体名 变量名
第一种定义方式:
struct student{
char *name;//姓名
int age;//年龄
float high;//身高
}
struct student stu;//定义stu变量
//可以通过变量stu.来访问结构体中的成员
stu.name = “zby”;
stu.age = 22;
第二种定义方式: 定义结构体类型的时候同时定义变量名。
struct student{
char *name;//姓名
int age;//年龄
float high;//身高
}stu;
第三种定义方式: 匿名结构体定义
struct {
char *name;//姓名
int age;//年龄
float high;//身高
}stu;
typedef关键词
C语言允许为一个数据类型起一个新的别名,就像给人起“绰号”一样。
起别名的目的不是为了提高程序运行效率,而是为了编码方便。例如有一个结构体的名字是stu,要想定义一个结构体变量就得这样写:struct stu form;
struct 看起来就是多余的,但不写又会报错。如果为 struct stu 起了一个别名 STU,书写起来就简单了:可以直接定义STU form;
这种写法更加简练,意义也非常明确,不管是在标准头文件中还是以后的编程实践中,都会大量使用这种别名。
typedef struct student{
char *name;//姓名
int age;//年龄
float high;//身高
}STU;
这里 STU = struct student;
再在需要的时候定义变量form时可以定义 STU form;
这样就可以通过 form.name = “zby”,form.age = 23;来访问结构体成员了。