结构体类型他只是一种类型,与 int,float,char,double一样,并没有具体数据,系统也不会给他分配内存,要想在程序中使用“结构体类型”数据,必须定义“结构体类型变量”,并在其中存放具体数据,一定要弄清楚“结构体类型”和“结构体类型变量”的区别。这个问题很重要,也很简单,就比如:

int a;

其中, int 就是类型, a就是这个类型定义 的变量。结构体也一样。

先声明“结构体类型”,再定义“结构体类型变量”。
比如在所有函数前面定义了一个结构体类型struct STUDENT,那么就可以在所有函数中使用他来定义局部的结构体类型变量。如:

struct STUDENT stud1, stud2;

stud1和stud2就是我们定义的结构体变量。

定义结构体变量之后,系统为其分配内存空间,与前面讲过的局部变量一样,如果 stud1和stud2是在某个函数中定义的局部变量,那么就只能在该函数中使用。在其函数中可以定义重名的结构体变量而不会相互生产影响。

结构体类型全局变量,我们不讲,一般很少用。