结构体struct的应用、结构体变量、结构体指针变量、结构体指针变量类型的区别

2019-04-13 11:35发布

        欢迎纠错,指正~ 结构体的使用:    今天去了坑爹的创新实验课,其实也不是说这个课很水,就是不适合大二的我在数电,模电都没接触的情况下去学习,所以我就对这个课就一头雾水,不过就在我蒙了几个小时后决定不能浪费我宝贵的时间,还好有wifi,所以就利用手机对一直半懂不懂的结构体进行了详细的复习和学习; 1、         结构体的定义: struct 结构名 {  成员列表;//每个成员都要有类型说明; }; 结构体定义的是一种数据结构,所以它本身并不会被当作数据而开辟空间; 2、         结构变量:说明结构变量的3种方式: ·(1)在定义结构体类型的同时说明变量 struct stu {  …; }boy1,boy2; (2)直接说明结构变量: struct {  …; }boy1,boy2; (3)先定义结构体类型,再说明变量 struct stu boy1,boy2; 3、         结构体与指针: 使用指针变量指向一个结构体变量(其首地址); 结构体指针变量说明: struct 结构名 *结构指针变量名 结构指针变量说明形式: (*p).成员名;  或    p->成员名; 等价于 结构变量.成员名; 4、         struct 和 typedef struct (1)、C语言中定义一个结构体变量用typedef,给定一个别名;    typedef struct student {  …; }Stu; 这样以后声明变量就用 Stu stu1;也可不用student 如果没用typedef 则 struct student stu1; (2)、c++ 中 struct student {  …; }; 则定义了结构体别名,在声明时就可以用student stu; 若使用 struct student {  …; }stu; 则stu是一个变量 typedef 的使用:typedef 是给其后所接的变量或结构等一个别名,所以对于如下结构: typedef struct student {  ...; }*Student; 定义的既不是一个指向结构体的结构体指针,也不是一个结构体变量;我们经常会看到他是这样使用的 Student stu; 这个时候的Student是一个结构体指针类型 他等价于 struct student *,而stu才是结构体指针变量; typedef struct student { }stu2;stu2是一个结构体类型