C語言枚舉(enum)和聯(lián)合(union)實例分享
使用enum進(jìn)行定義
/*
枚舉類型演示
*/
#include <stdio.h>
int main() {
enum /*季節(jié)*/ {CHUN, XIA = 5, QIU, DONG};
printf("QIU是%d\n", QIU);
}
使用union聯(lián)合進(jìn)行定義
/*
聯(lián)合演示
*/
#include <stdio.h>
typedef union{
int val;
float fval1;
} tmp;
int main(){
tmp utmp = {0};
printf("&(utmp.val)是%p\n", &(utmp.val)); //所指向的地址是相同的
printf("&(utmp.fval)是%p\n", &(utmp.fval1));
}
知識點擴(kuò)展:
枚舉類型的定義形式為:
enum typeName{ valueName1, valueName2, valueName3, ...... };
enum是一個新的關(guān)鍵字,專門用來定義枚舉類型,這也是它在C語言中的唯一用途;typeName是枚舉類型的名字;
valueName1, valueName2, valueName3, ......是每個值對應(yīng)的名字的列表。注意最后的;不能少。
例如,列出一個星期有幾天:
enum week{ Mon, Tues, Wed, Thurs, Fri, Sat, Sun };
可以看到,我們僅僅給出了名字,卻沒有給出名字對應(yīng)的值,這是因為枚舉值默認(rèn)從 0 開始,往后逐個加 1(遞增);也就是說,week 中的 Mon、Tues ...... Sun 對應(yīng)的值分別為 0、1 ...... 6。
我們也可以給每個名字都指定一個值:
enum week{ Mon = 1, Tues = 2, Wed = 3, Thurs = 4, Fri = 5, Sat = 6, Sun = 7 };
更為簡單的方法是只給第一個名字指定值:
enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun };
這樣枚舉值就從 1 開始遞增,跟上面的寫法是等效的。
枚舉是一種類型,通過它可以定義枚舉變量:
enum week a, b, c;
也可以在定義枚舉類型的同時定義變量:
enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun } a, b, c;
有了枚舉變量,就可以把列表中的值賦給它:
enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun };
enum week a = Mon, b = Wed, c = Sat;
或者:
enum week{ Mon = 1, Tues, Wed, Thurs, Fri, Sat, Sun } a = Mon, b = Wed, c = Sat;
到此這篇關(guān)于C語言枚舉(enum)和聯(lián)合(union)實例分享的文章就介紹到這了,更多相關(guān)C語言枚舉(enum)和聯(lián)合(union)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
c++ vector(向量)使用方法詳解(順序訪問vector的多種方式)
vector是向量類型,它可以容納許多類型的數(shù)據(jù),如若干個整數(shù),所以稱其為容器,本文介紹一下使用方法2013-12-12
C++獲得本機(jī)所有網(wǎng)卡的IP和MAC地址信息的實現(xiàn)方法
下面小編就為大家?guī)硪黄狢++獲得本機(jī)所有網(wǎng)卡的IP和MAC地址信息的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10

