1
、共用體
共用體由若干個資料型別組合而成。和結構體型不同的是,共用體資料中所有成員都占用相同的記憶體單元,設定這種資料型別的主要目的就是節省記憶體空間。
union
共用體名
共用體變數名;
例如
union data
a,b,c;
也可以將型別宣告與變數定義分開:
union
a,b,c;
當然,也可以直接定義共用體變數:
union data
a,b,c;
注意:(1
)同一內段可以用來存放幾種不同型別的成員,但每一瞬時只有乙個成員起作用。
(2)共用體變數中前一次起作用的成員在存入新的成員後原有的成員失去意義。
(3)共用體變數和它的所有成員的位址都是同一位址。
(4)不同對共用體變數賦值,也不能在定義共用體變數時對其初始化。
2、列舉
1
)列舉型定義的一般語法形式為:
enum
列舉名例如,如下**宣告了乙個舉枚型別weekday:
enum weekday;
隨後,我們就可以用這個舉枚型別來定義變數,如:
enumweekday workday,weekend;
c語言也允許在宣告列舉型別同時定義列舉變數,如:
enumweekday workday,weekend;
這樣變數workday,weekend就具有weekday舉枚型別,其取值只能是mon, tue,wed, thu,fri,sat,sum
這幾個值。
(
2)賦初值
在給列舉常量賦初值時,如果給其中任何乙個列舉常量賦初值,則後面的列舉常量將按自然數的規則依次賦初值,例如:
enum weekday;
上面的例子只給列舉常量
wed賦了初值,在這種情況下,每個列舉常量的初值分別如下:
sun的值為0,
mon的值為1,
tue的值為2,
wed的值為6,
thu的值為7,
fri值為8,
sat值為9。
注意:1 列舉中每個成員(識別符號)結束符是「,」,不是「;」,最後乙個成員可省略「,」。
2 初始化時可以賦負數,以後的列舉元素一次加1.
3 列舉變數只能取列舉說明結構中的某個列舉元素。
共用體 列舉型 指標 函式
共用體 union 共用體名 1.共用體所佔記憶體空間為包含的資料型別最大空間的值。2.某乙個時段,只有乙個資料是有效的,同時賦值,後面的屬性會覆蓋前面的屬性。列舉型enum 列舉名 1.內部是整型常量,從0開始。2.我們定義一系列的整型常量,減少魔鬼數字的使用。指標int main 函式1.庫函式...
共用體型別和列舉型
共用體型別和列舉型 1 共用體型別變數的定義 union 共用體名稱 2 共用體型別變數的定義 union 共用體名稱 共用體型別變數 注意,結構體變數所佔的記憶體長度是各成員所佔記憶體之和,而共用體變數則是各成員中最大記憶體者。3 共用體的引用 共用體型別變數 成員名 在引用時需注意,共用體變數中...
結構體 共用體 列舉
結構體 共用體 列舉 分析 首先宣告的結構體元素year的位址是最低的 0012ff74 而最後宣告的day的位址是最高的 0012ff7c 而我們又知道在棧中宣告變數的時候,位址是從高到低的分配的.因此,切記在結構體中宣告的變數與直接在外面宣告是不一樣的.在結構體中,最先宣告的變數放在最低位的.另...