欢迎纠错,指正~
结构体的使用:
今天去了坑爹的创新实验课,其实也不是说这个课很水,就是不适合大二的我在数电,模电都没接触的情况下去学习,所以我就对这个课就一头雾水,不过就在我蒙了几个小时后决定不能浪费我宝贵的时间,还好有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是一个结构体类型