標籤:
------Java培訓、Android培訓、iOS培訓、.Net培訓、期待與您交流! -------
一、什麼是結構體
當一個整體由多個資料構成時,我們可以用數組來表示這個整體,但是數組有個特點:內部的每一個元素都必須是相同類型的資料。
在實際應用中,我們通常需要由不同類型的資料來構成一個整體,比如學生這個整體可以由姓名、年齡、身高等資料構成,這些數
據都具有不同的類型,姓名可以是字串類型,年齡可以是整型,身高可以是浮點型。
為此,C語言專門提供了一種構造類型來解決上述問題,這就是結構體,它允許內部的元素是不同類型的。
二、
1.定義形式
結構體內部的元素,也就是組成成分,我們一般稱為"成員"。
結構體的一般定義形式為:
struct 結構體名{
類型名1 成員名1;
類型名2 成員名2;
};
比如,我們定義一個學生類
三、結構體變數的定義
前面只是定義了名字為Student的結構體類型,並非定義了一個結構體變數,就像int一樣,只是一種類型。
定義結構體的方式一般有三種
1.先定義結構體類型,再定義變數
2.定義結構體類型的同時定義變數
3.直接定義結構體類型變數,省略類型名
四、結構體的注意點
1.結構體不可以包含自己
2.結構體內可以包含別的結構體
3.只有當定義屬於結構體類型的變數時,系統才會分配儲存空間給該變數
結構體的初始化
將各成員的初值,按順序地放在一對大括弧{}中,並用逗號分隔,一一對應賦值。
比如初始化Student結構體變數stu
結構體只能在定義變數的時候賦初值
枚舉
枚舉是C語言中的一種基礎資料型別 (Elementary Data Type),並不是構造類型,它可以用於聲明一組常數。
當一個變數有幾個固定的可能取值時,可以將這個變數定義為枚舉類型。比如,你可以用一個枚舉類型的變數來表示季節,因為季節只有4種可能的取值:春天、夏天、秋天、冬天。1.枚舉的定義
1)枚舉類型的定義
一般形式為:enum 枚舉名 {枚舉元素1,枚舉元素2,……};
2)枚舉變數的定義
跟結構體一樣,有3種方式定義枚舉變數
1>先定義枚舉類型,再定義枚舉變數
2>定義枚舉類型同時,定義枚舉變數
3>省略枚舉類型名,直接定義枚舉變數
2.枚舉的使用
1)C語言編譯器會將枚舉元素(spring、summer等)作為整型常量處理,稱為枚舉常量。
2)枚舉元素的值取決於定義時各枚舉元素排列的先後順序。預設情況下,第一個枚舉元素的值為0,第二個為1,依次順序加1。
3)也可以在定義枚舉類型時改變枚舉類型的值
3.枚舉變數的基本操作賦值
可以給枚舉變數賦枚舉常量或者整型值
遍曆枚舉元素
typedef1.typedef作用簡介
1)我們可以使用typedef關鍵字為各種資料類型定義一個新名字
2)我們還可以在別名的基礎上再起別名
typedef與指標
除開可以給基礎資料型別 (Elementary Data Type)起別名,typedef也可以給指標起別名
typedef與結構體
給結構體起別名可以使代碼更加簡潔明
typedef與枚舉類型
typedef與指向函數的指標1)先看一下指向函數的指標如何定義
總結:
1.需要先定義結構體類型,再定義結構體變數。定義結構體類型時,系統是不分配記憶體空間的。系統只分配記憶體空間給實際的結構體變數。
2.結構體變數所佔記憶體大小:補齊演算法——最大元素的倍數。
3.枚舉元素值從0開始,後續元素依次+1。
4.typedef的使用
黑馬程式員——c語言基礎:結構體和枚舉---typedef的使用