久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

c語言枚舉

 雙木亭 2012-07-08

[點(diǎn)評(píng):枚舉一般用于定義一個(gè)集合,如色彩,星期等等,他提供了更加貼近實(shí)際的對(duì)對(duì)象的描述,方便了編程工作.]

    下面簡單介紹下C語言中的枚舉類型和在Linux系統(tǒng)中的作用,。

    枚舉是一個(gè)被命名的整型常數(shù)的集合, 枚舉在日常生活中很常見,。

    例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,SATURDAY, 就是一個(gè)枚舉,。

    枚舉的說明與結(jié)構(gòu)和聯(lián)合相似, 其形式為:

    enum 枚舉名{

    標(biāo)識(shí)符[=整型常數(shù)],

    標(biāo)識(shí)符[=整型常數(shù)],

    ...

    標(biāo)識(shí)符[=整型常數(shù)],

    } 枚舉變量;

    如果枚舉沒有初始化, 即省掉"=整型常數(shù)"時(shí), 則從第一個(gè)標(biāo)識(shí)符開始, 順

    次賦給標(biāo)識(shí)符0, 1, 2, ...。但當(dāng)枚舉中的某個(gè)成員賦值后, 其后的成員按依次

    加1的規(guī)則確定其值,。

    例如下列枚舉說明后, x1, x2, x3, x4的值分別為0, 1, 2, 3,。

    enum string{x1, x2, x3, x4}x;

    當(dāng)定義改變成:

    enum string

    {

    x1,

    x2=0,

    x3=50,

    x4,

    }x;

    則x1=0, x2=0, x3=50, x4=51

    注意:

    1. 枚舉中每個(gè)成員(標(biāo)識(shí)符)結(jié)束符是",", 不是";", 最后一個(gè)成員可省略

    ","。

    2. 初始化時(shí)可以賦負(fù)數(shù), 以后的標(biāo)識(shí)符仍依次加1,。

    3. 枚舉變量只能取枚舉說明結(jié)構(gòu)中的某個(gè)標(biāo)識(shí)符常量,。

    例如:

    enum string

    {

    x1=5,

    x2,

    x3,

    x4,

    };

    enum strig x=x3;

    此時(shí), 枚舉變量x實(shí)際上是7,。

    enum   關(guān)鍵字在c中用的是比較多的,它常用來定義標(biāo)記整型常量,,你去看許多操作系統(tǒng)的源代碼,,都有用這個(gè)關(guān)鍵字來一次定義許多標(biāo)記整型常量,其實(shí)它相當(dāng)于定義一 個(gè)整型常量的表,,方便應(yīng)用時(shí)查找,。當(dāng)然他的大部分功能都可以被宏定義代替,不過畢竟enum關(guān)鍵字定義的東東是支持類型檢查的,,可以用編譯器來發(fā)現(xiàn)一些錯(cuò) 誤(enum定義的只能是整型的常量表)

 

補(bǔ)充:在實(shí)際問題中,,有些變量的取值被限定在一個(gè)有限的范圍內(nèi),。例如,,一個(gè)星期內(nèi)只有七天,一年只有十二個(gè)月,,一個(gè)班每周 有六門課程等等,。如果把這些量說明為整型,字符型或其它類型顯然是不妥當(dāng)?shù)?。為此,,C語言提供了一種稱為“枚舉”的類型。在“枚舉”類型的定義中列舉出所 有可能的取值,,被說明為該“枚舉”類型的變量取值不能超過定義的范圍,。應(yīng)該說明的是,枚舉類型是一種基本數(shù)據(jù)類型,,而不是一種構(gòu)造類型,,因?yàn)樗荒茉俜纸? 為任何基本類型。

11.1.1枚舉類型的定義和枚舉變量的說明

1,、枚舉的定義枚舉類型定義的一般形式為:
    enum 枚舉名{ 枚舉值表 };
在枚舉值表中應(yīng)羅列出所有可用值,。這些值也稱為枚舉元素。例如:

該枚舉名為weekday,,枚舉值共有7個(gè),,即一周中的七天。凡被說明為weekday類型變量的取值只能是七天中的某一天,。

2,、枚舉變量的說明

如同結(jié)構(gòu)和聯(lián)合一樣,枚舉變量也可用不同的方式說明,,即先定義后說明,,同時(shí)定義說明或直接說明。設(shè)有變量a,b,c被說明為上述的weekday,,可采用下述任一種方式:
    enum weekday{ sun,mou,tue,wed,thu,fri,sat };
    enum weekday a,b,c;
或者為:
    enum weekday{ sun,mou,tue,wed,thu,fri,sat }a,b,c;
或者為:
    enum { sun,mou,tue,wed,thu,fri,sat }a,b,c;

11.1.2枚舉類型變量的賦值和使用

枚舉類型在使用中有以下規(guī)定:

1,、枚舉值是常量,,不是變量。不能在程序中用賦值語句再對(duì)它賦值,。例如對(duì)枚舉weekday的元素再作以下賦值:
    sun=5;
    mon=2;
    sun=mon;
都是錯(cuò)誤的,。

2、枚舉元素本身由系統(tǒng)定義了一個(gè)表示序號(hào)的數(shù)值,,從0開始順序定義為0,,1,2…,。如在weekday中,,sun值為0,mon值為1,,…,sat值為6,。

【例11.10】
main(){
    enum weekday
    { sun,mon,tue,wed,thu,fri,sat } a,b,c;
    a=sun;
    b=mon;
    c=tue;
    printf("%d,%d,%d",a,b,c);
}

說明:只能把枚舉值賦予枚舉變量,不能把元素的數(shù)值直接賦予枚舉變量,。如:
    a=sum;
    b=mon;
是正確的,。而:
    a=0;
    b=1;
是錯(cuò)誤的。如一定要把數(shù)值賦予枚舉變量,,則必須用強(qiáng)制類型轉(zhuǎn)換,。如:
    a=(enum weekday)2;
其意義是將順序號(hào)為2的枚舉元素賦予枚舉變量a,相當(dāng)于:
    a=tue;
還應(yīng)該說明的是枚舉元素不是字符常量也不是字符串常量,,使用時(shí)不要加單,、雙引號(hào)。

【例11.11】
main(){
    enum body
    { a,b,c,d } month[31],j;
    int i;
    j=a;
    for(i=1;i<=30;i++){
      month[i]=j;
      j++;
      if (j>d) j=a;
    }
    for(i=1;i<=30;i++){
      switch(month[i])
      {
        case a:printf(" %2d  %c\t",i,'a'); break;
        case b:printf(" %2d  %c\t",i,'b'); break;
        case c:printf(" %2d  %c\t",i,'c'); break;
        case d:printf(" %2d  %c\t",i,'d'); break;
        default:break;
      }
    }
    printf("\n");
}

原文鏈接: http://linux./c/76...

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多