天天看点

第20节 C语言五大类型之构造类型(结构体)   1、数组  :   2、联合   3、结构体:    3.1、结构体类型的变量一般格式    3.2、结构体的嵌套    3.2、结构体类型变量的初始化。      3.3、结构体类型的指针      3.4、结构体类型的数组

结构体、联合体、枚举

一、构造数据类型

   1、数组  :

         批量处理相同数据类型的一个数据结构

   2、联合

             可以说是已经淘汰了,基本不用这种技术了

   3、结构体:

         处理不同数据类型的一个数据结构,结构体也是一段连续的内存空间(但是)由于成员变量的排列顺序不同,可能造成有缝隙。(内存的对齐和补齐)。

   体检表:

   姓名:黄永瑞     性别:男       出生日期:1990-1-1  照片:

   家庭地址:深圳市龙岗区美梦家园

    内科       血压/脉搏

                   120/85  98

    外科       身高   体重   视力/色弱

    耳鼻喉    

    胸透X

    B超

    心电图

    3.1、结构体类型的变量一般格式

       struct  结构体名称 

       {

      };

     例子:struct Student

                 {

                   int no;//学号

                   char name[20];//姓名  =====>成员变量

                   char sex[10];//性别

                   double score;//成绩 

                 };

第一种

struct Student

                 {

                   int no;//学号

                   char name[20];//姓名  =====>成员变量

                   char sex[10];//性别

                   double score;//成绩 

                 }变量名,变量名1;

                第二种

                 struct Student 变量名;

                 --------------------

            整体看做一个数据类型

     注意:结构体是一个数据类型,复合的数据类型,就是由很多个基本数据类型组成的一个大得数据类型。这样的数据类型并不分配内存空间,只有在创建一个结构体类型的变量时才分配内存空间,来存储结构体中得成员变量。

    3.2、结构体的嵌套

    struct Student

    {

          int no;

          char name[20];

          int age;//年龄

          struct Birthday

          {

              int y;

              int m;

              int d;

          };

    };

   或

    struct Birthday

          {

              int y;

              int m;

              int d;

          };

  struct Student

        {

          int no;

          char name[20];

          int age;//年龄

          struct Birthday birth;//生日

         };

    3.2、结构体类型变量的初始化。

       第一种

       struct Student

       {

         int no;

         char name[20];

       }stu = {2013001,"锐哥"};

       第二种

        struct Student liang = {0};//不推荐

        struct Student liang = {2014001,"亮哥"};

       动态从键盘上去给成会员变量赋值

       点语法 " . "

       结构体变量名.成员变量名;

       如果是scanf()输入 遇到基本数据类型中得数值数据以及字符类型的数据都要加 & 符号,否则错误,如果是字符串类型用scanf(),%s还要去掉 &符号,字符串结构本身就是地址。

      指针运算符  ->

      访问结构体变量的成员变量的方法。

      3.3、结构体类型的指针

        struct Student*  p;

      3.4、结构体类型的数组

        每一个数组元素,其实是一个结构体类型的变量,每一个变量又是由多个不同数据类型的变量组成。

        例子:我们可以借助结构体数组,保存1406班每一个学生的信息,学号  姓名 性别  年龄等。

        一般格式:   结构体类型  数组名[];

        struct Student stu[50];