天天看點

第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];