编程入门之结构体

  在C语言程序设计中,数组可以将相同类型的元素封装进一个逻辑实体中,通过数组名和数组下标访问独立的数据。而结构体可以将不同类型的数据封装进一个逻辑实体中,通过成员访问运算符(.)访问结构体成员。

一、结构体的定义:

  1、定义形式:struct  struct_lab{

          dataType  data1;

          dataType data2;

          ……

          dataType dataN;

        };

  2、定义元素:关键字struct必不可少;struct_lab如果结构体内部用不到,可以省略;{……}内部不能全部省略;最后的‘;必不可少

  3、定义结构体变量:struct struct_lab struct1;     //定义结构体变量struct1,必须使用struct struct_lab修饰struct1标识符

  4、另类定义,使用typedef关键字实现类型定义,形式:

        typedef  struct  struct_lab{

          dataType  data1;

          dataType data2;

          ……

          dataType dataN;

        } structType;

  5、定义元素:除了关键字struct,必不可少;struct_lab如果结构体内部用不到,可以省略;{……}内部不能全部省略;最后的';'必不可少之外,typedef关键字也是必不可少,strucType是结构体的类型定义;

  6、定义结构体变量:structType struct1;       //定义结构体变量struct1,将structType当成一种新的类型定义使用

  7、定义结构体指针变量:structType *ptrStruct1;   //定义结构体指针变量ptrStruct1,将structType当成一种新的类型定义使用
 
 
二、结构体的成员访问:
  1、普通结构体变量的成员访问使用成员变量符访问成员即可,例如:struct1.data1 = 1;
  2、结构体指针变量的成员访问可以使用成员变量符访问成员,例如:(*ptrStruct1).data
  3、结构体指针变量的成员访问也可以使用指针成员变量符访问成员,例如:ptrStruct1->data,这种方法用的最多
 
三、结构体的应用:
  1、结构体中的每个成员都有自己的内存空间,如果成员中使用了指针变量,一定要先行分配内存;
  2、在表达式中使用结构体;
  3、可以定义结构体变量;
  4、可以定义结构体数组;
  5、可以定义结构体指针;
  6、可以定义结构体指针数组;
  7、函数可以返回结构体类型数据;
  8、函数可以将结构体类型数据作为型参;
 
四、结构体附加:
  1、结构体中可以包含基本类型的数据;
  2、结构体中可以包含指针类型的数据(普通变量指针、数组指针、结构体指针、联合体指针、枚举指针、指针的指针);
  3、结构体中可以包含符合类型的数据(数组,结构体、联合体、枚举等)
原文地址:https://www.cnblogs.com/guochaoxxl/p/10823564.html