C語言奇妙之旅_結構體

爲什麼需要結構體

          爲了表示一些複雜的事物, 而普通的基本類型無法滿足實際要求。

          如果只能使用基本類型來寫程序, 那將是一件痛苦的事情!

什麼叫結構體

          把一些基本類型數據組合在一起形成一個新的複合數據類型, 這個叫結構體。

結構體的概念

          由若干個"成員"組成, 其中的每一個成員可以使一個基本數據類型或者是一個構造類型。

如何定義結構體

定義新的結構類型, 但沒有定義變量

一般形式

 

struct 結構體名稱

{

    成員表列

};  

不要忘記大括號結尾的結束符!!!

 

struct P

{

    int a[10];

    char 'a'; 

}; 

定義了數據類型, 也定義了變量

一般形式

 

struct 結構體名

{

    成員列表;

} 變量名列表;

這次的結束符在變量列表的後面哦!

 

struct p

{

    int i;

    char 'a';

} p1, p2;

直接定義結構體類型變量

一般形式

 

struct

{

    成員列表

} 變量列表;

推薦第一種!

 

#include <stdio.h>

struct student
{
    int mid;
    int final;
    int hmws;
};

int main()
{
    struct student sam = {85, 90, 88};
    struct student tom = {93, 88, 91};
    struct student *he = &tom;  // 通過指針訪問結構體及其成員
    // 我們不能像讀寫變量一樣讀寫 student 結構體
    // 不能直接對結構體進行比較,例如 sam == tom 是不對的
    // 但是可以對已經定義的結構體變量進行交換,如下所示:
    tom = sam;
    // 通過輸出成員的方式輸出 tom
    printf("tom = {%d, %d, %d}\n",  tom.mid, tom.final, tom.hmws);
    // 注意點號

    printf("*he = {%d, %d, %d}\n",  he->mid, he->final, he->hmws);
    // 注意箭頭

    // 通過其他方式也可以獲得同樣的輸出結果,如下所示:
    printf("*he = {%d, %d, %d}\n",  (*he).mid, (*he).final, (*he).hmws);
}

/*
   例子來自C語言中文網:
       http://c.biancheng.net/cpp/html/2572.html
*/

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章