1. 程式人生 > >C語言關於構造類型的簡單概括

C語言關於構造類型的簡單概括

函數定義 指向 bsp num 標識符 nbsp 地址 字符 姓名

1,結構體的構造聲明如下;

  struct 結構體類型 //結構體類型常常首字母大寫;

  {  結構體成員; //結構體成員的引用格式為: 結構體變量.成員

  }結構體變量; //如果是結構體數組,變量為數組名[結構體個數]

  1.1,結構體的使用:

    1.1.1:聲明結構體;

    1.1.2:定義初始化結構體;

    1.1.3:調用或賦值或使用結構體指針引用;

    struct Student //使用struct關鍵字聲明一個Student類型結構體;

    {  char Name[20]; //字符串結構體成員Name;

       char Sex[20]; //字符串結構體成員Sex;

       int Age; //整型結構體成員Age;

    } student1={"胡犀牛","男",23}; //定義結構體變量student1,並且初始化;

    struct Student student2={...}; //單獨定義結構體變量並且初始化;

    printf("姓名:%s",student1.Name ); //結構體變量的調用: 結構體變量.成員

    1.1.4:如果結構體的成員還是結構體,則需要繼續使用成員運算符引用變量;

    1.1.5:成員運算符的優先級max,結構體成員與普通變量使用方法一樣;漢字屬於字符串;

    1.1.6:結構體聲明可以在主函數內也可以在主函數外,因為聲明不是函數定義;

    1.1.7:如果一個結構體成員還是結構體,初始化或者調用的時候是使用結構體內的結構體的成員;要層級調用;

  1.2,結構體數組;

    表示數組中的元素為結構體類型的數組;(兼具結構體和數組的語法特點;)

    聲明結構體數組時的變量格式為:數組名[數組個數]

    調用結構體數組時的變量格式為:數組名[數組下標].成員

  1.3,結構體指針;

    表示指向結構體變量起始地址的指針;

    變量定義為:結構體類型 *指針名字;

    訪問結構體成員的兩種方式為:

    1.3.1:(*指針).成員 //指向指針地址得到結構體變量,等價於 "變量.成員" 的調用;

    1.3.2: 指針=&結構體變量;

        指針->結構體成員; //定義一個指針,然後把結構體的地址傳遞給指針,然後使用結構體指向符指向引用成員;

    1.3.3:結構體變量.成員 = (*結構體指針).成員 = 結構體指針->成員

    1.3.4: (1)指針->成員:表示結構體指針指向結構體成員的值;

        (2)指針->成員++:表示指針指向成員的值,使用後值加1; //沒有括號自加運算操作的是成員值;

        (3) ++指針->成員:表示指針指向成員的值,值加1後使用;

        (4)(++指針)->成員:表示指針先指向下一個成員的地址,然後指向成員的值; //指針加括號自加運算操作的是指針;

        (5)(指針++)->成員:表示指針指向成員的值,使用後指針指向下一個成員的值;

  1.4,指向結構體數組的指針;

    使用方法和結構體指針一樣;數組指針自加運算是指向下一個結構體數組成員;

  1.5,結構體與函數參數的關系;

    1.5.1;使用結構體成員作為函數實參傳遞;(值傳遞,與普通變量使用方法一樣)

    1.5.2;使用結構體變量作為函數實參傳遞;(值傳遞,傳遞的是結構體變量的所有值,值的參數傳遞是單向)

    1.5.3;使用指向結構體變量的指針作為函數實參傳遞;(地址傳遞,傳遞的是結構體變量的首地址,參數值雙向傳遞)

2,共用體;

  含義:由關鍵字union定義,類型為DataUnion; 把幾種不同類型的變量存放在同一段內存中,所以同一時刻的共用體變量指向同一個地址內的值;

  用法:定義和引用與結構體相同,但是共用體的初始化只要初始化一個值就可以了;

  聲明:

    union DataUnion //聲明一個DataUnion類型的共用體;

    {  成員; //成員列表,存入同一個地址中;

    }變量; //可以順便定義變量並初始化,也可以單獨定義;

  定義:

union DataUnion variable; //定義一個共用體類型的變量variable;

  引用:共用體對象.成員

3,枚舉;使用enum關鍵字;

  枚舉類型包含一組相關枚舉標識符;每個標識符一一對應一個整數值常量,稱之為枚舉常量;

  枚舉類型初始化的時候我們可以只初始化某個特定的標識符,然後剩下的標識符依次加一;

4,typedef 聲明新類型的關鍵字; 就是將已有的類型聲明出新的名字;

C語言關於構造類型的簡單概括