(四)學習筆記 c語言基礎 結構體

1.在C語言中,可以使用結構體(Struct)來存放一組不同類型的數據。結構體的定義形式爲:

struct stu{
    char * name;
    int num;
    int age;
}

結構體也是一種數據類型,它由程序員自己定義,可以包含多個其他類型的數據。

結構體是一種自定義的數據類型,是創建變量的模板,不佔用內存空間;結構體變量才包含了實實在在的數據,需要內存空間來存儲。

2.結構體數組

struct stu{
    char * name;
    int num;
    int age;
}class[2] = {
    {"xiaohua", 1901, 18},
    {"xiaocao", 1902, 19}
}

3.結構體指針

結構體變量名和數組名不同,數組名在表達式中會被轉換爲數組指針,而結構體變量名不會,無論在任何表達式中它表示的都是整個集合本身,要想取得結構體變量的地址,必須在前面加&。

int main()
{
struct stu{
    char *name;
    int num;
    int age;
};
struct stu stu1 = {"xiaohua", 1901, 18};
struct stu *pstu = &stu1;
printf("%s\n", stu1.name);
printf("%s\n", (*pstu).name); 
//或者
printf("%s\n", pstu->name); 
}

結構體指針獲取結構體成員寫法:
1)(*pstu).name) 2) pstu->name ->是一個新的運算符,可以通過結構體指針直接取得結構體成員;這也是->在C語言中的唯一用途。

4.結構體指針作爲函數參數

結構體變量名代表的是整個集合本身,作爲函數參數時傳遞的整個集合,也就是所有成員,而不是像數組一樣被編譯器轉換成一個指針。如果結構體成員較多,尤其是成員爲數組時,傳送的時間和空間開銷會很大,影響程序的運行效率。所以最好的辦法就是使用結構體指針,這時由實參傳向形參的只是一個地址,非常快速。

上一篇:(三)學習筆記 c語言基礎 指針

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