一、建立结构体类型

1、申明结构体类型

struct 结构体名
{
    成员表列(类型名 成员名;);
};

例如:
struct Person
{
    char name;
    int age;
   char sex;
};
//定义了一个结构体类型——struct Person

struct为关键字,不可省略 
结构体类型如同其他类型一样,在c程序中具有和其他类型相同的地位,就如同 int(整数类型) char(字符类型)一样

Zu:结构体名可以自由命名,成员表列也可以由现实情况自由定义。书写格式固定,内容自定义。

2、定义结构体类型变量

前言:
1)程序运行的时候只会对变量进行操作,而不会对类型进行操作,(比如,你什么时候对int  double  进行过运算,赋值呢,对吧)所以我们要先定义变量,然后才能对其进行操作。

2)编译的时候对类型是不分配空间的,只会对变量分配存储空间。

3)结构体中的成员可以单独使用,作用与地位相当于普通变量。

4)要遵循:先定义结构体类型,后定义结构体变量。

三种方法定义结构体变量:

1)结构体类型名  变量名;

  (类似于:类型名  变量名;)

struct    Student
{
   char name;
   int age;   
};//定义结构体类型

struct Student  student1,student2;//定义了 student1,student2两个结构体变量

struct Student  students[5];//定义了一个结构体数组,长度为5

结构体类型也可以定义数组。

2)申明结构体类型的同时定义变量

struct    Student
{
   char name;
   int age;   
}studen1,student2;//在定义struct    Studentt这个结构体类型的同时定义了studen1,student2两个struct    Student结构体变量

struct 结构体名
{
  变量表列;  
}变量名表列;

//结构体数组也可这样定义
struct    Student
{
   char name;
   int age;   
}studens[5];//定义了一个结构体数组,长度为5

(struct 结构体名) 合起来称作一个结构体类型。

3)不定义类型名而直接定义结构体类型变量

无名结构体无法再次定义此类结构体变量。

strcut
{
    char name;
    int age;
}student1,student2;

//意义与上面的相同

Zu:该方式的定义方法意义不大,使用很少。

3、结构体变量的初始化和使用

这部分比较简单,不做介绍,任何一本c语言教科书都会进行讲解。

4、结构体指针也不做讲解。