欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

c語(yǔ)言函數(shù)中枚舉的索引,c語(yǔ)言枚舉法例題

C語(yǔ)言中關(guān)于枚舉類型

1.enum

創(chuàng)新互聯(lián)是一家網(wǎng)站設(shè)計(jì)公司,集創(chuàng)意、互聯(lián)網(wǎng)應(yīng)用、軟件技術(shù)為一體的創(chuàng)意網(wǎng)站建設(shè)服務(wù)商,主營(yíng)產(chǎn)品:響應(yīng)式網(wǎng)站開(kāi)發(fā)品牌網(wǎng)站建設(shè)網(wǎng)絡(luò)營(yíng)銷推廣。我們專注企業(yè)品牌在網(wǎng)站中的整體樹(shù)立,網(wǎng)絡(luò)互動(dòng)的體驗(yàn),以及在手機(jī)等移動(dòng)端的優(yōu)質(zhì)呈現(xiàn)。網(wǎng)站制作、成都做網(wǎng)站、移動(dòng)互聯(lián)產(chǎn)品、網(wǎng)絡(luò)運(yùn)營(yíng)、VI設(shè)計(jì)、云產(chǎn)品.運(yùn)維為核心業(yè)務(wù)。為用戶提供一站式解決方案,我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶,為客戶提供賞析悅目的作品,網(wǎng)站的價(jià)值服務(wù)。

枚舉的定義

枚舉類型定義的一般形式為:

enum 枚舉名{ 枚舉值表 };

在枚舉值表中應(yīng)羅列出所有可用值。這些值也稱為枚舉元素。

例如:

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

2.

枚舉變量的說(shuō)明

如同結(jié)構(gòu)和聯(lián)合一樣,枚舉變量也可用不同的方式說(shuō)明,即先定義后說(shuō)明,同時(shí)定義說(shuō)明或直接說(shuō)明。

設(shè)有變量a,b,c被說(shuō)明為上述的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;

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

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

a.

枚舉值是常量,不是變量。不能在程序中用賦值語(yǔ)句再對(duì)它賦值。

例如對(duì)枚舉weekday的元素再作以下賦值:

sun=5;

mon=2;

sun=mon;

都是錯(cuò)誤的。

b.

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

int 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);

return 0;

}

說(shuō)明:

只能把枚舉值賦予枚舉變量,不能把元素的數(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)該說(shuō)明的是枚舉元素不是字符常量也不是字符串常量,使用時(shí)不要加單、雙引號(hào)。

int 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 (jd) 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");

return 0;

}

我講講C語(yǔ)言中的枚舉是什么意思

枚舉類型可以理解為一個(gè)集合,枚舉成員是集合內(nèi)的一些帶有名字的整型常量,成員之間用逗號(hào)隔開(kāi)。枚舉的名字可有可無(wú),只是一個(gè)標(biāo)識(shí)。枚舉中, 第一個(gè)枚舉成員默認(rèn)值為整型的0,后續(xù)枚舉成員的值在前一個(gè)成員上加1。當(dāng)然也可以人為設(shè)定枚舉成員的初始值。例如enum Person { Man, Women}; enum Person { Man=1, Women}; 通常用枚舉來(lái)列舉一些有限數(shù)量的變量,也就是可列舉的變量,例如一周七天,就可以用枚舉實(shí)現(xiàn)。

C語(yǔ)言枚舉類型,知道這些你就會(huì)了

在實(shí)際編程中,有些數(shù)據(jù)的取值往往是有限的,只能是非常少量的整數(shù),并且最好為每個(gè)值都取一個(gè)名字,以方便在后續(xù)代碼中使用,比如一個(gè)星期只有七天,一年只有十二個(gè)月,一個(gè)班每周有六門(mén)課程等。

以每周七天為例,我們可以使用 #define 命令來(lái)給每天指定一個(gè)名字:

#define 命令雖然能解決問(wèn)題,但也帶來(lái)了不小的副作用,導(dǎo)致宏名過(guò)多,代碼松散,看起來(lái)總有點(diǎn)不舒服。C語(yǔ)言提供了一種 枚舉(Enum)類型 ,能夠列出所有可能的取值,并給它們?nèi)∫粋€(gè)名字。

enum 是一個(gè)新的關(guān)鍵字,專門(mén)用來(lái)定義枚舉類型,這也是它在C語(yǔ)言中的唯一用途; typeName 是枚舉類型的名字; valueName1, valueName2, valueName3, ...... 是每個(gè)值對(duì)應(yīng)的名字的列表。注意最后的 ; 不能少。

例如,列出一個(gè)星期有幾天:

可以看到,我們僅僅給出了名字,卻沒(méi)有給出名字對(duì)應(yīng)的值,這是因?yàn)槊杜e值默認(rèn)從 0 開(kāi)始,往后逐個(gè)加 1(遞增);也就是說(shuō),week 中的 Mon、Tues ...... Sun 對(duì)應(yīng)的值分別為 0、1 ...... 6。

我們也可以給每個(gè)名字都指定一個(gè)值:

更為簡(jiǎn)單的方法是只給第一個(gè)名字指定值:

這樣枚舉值就從 1 開(kāi)始遞增,跟上面的寫(xiě)法是等效的。

枚舉是一種類型,通過(guò)它可以定義枚舉變量:

也可以在定義枚舉類型的同時(shí)定義變量:

有了枚舉變量,就可以把列表中的值賦給它:

或者:

Mon、Tues、Wed 這些名字都被替換成了對(duì)應(yīng)的數(shù)字。這意味著,Mon、Tues、Wed 等都不是變量,它們不占用數(shù)據(jù)區(qū)(常量區(qū)、全局?jǐn)?shù)據(jù)區(qū)、棧區(qū)和堆區(qū))的內(nèi)存,而是直接被編譯到命令里面,放到代碼區(qū),所以不能用 取得它們的地址。這就是枚舉的本質(zhì)。

枚舉類型變量需要存放的是一個(gè)整數(shù),它的長(zhǎng)度和 int 相同。

c語(yǔ)言枚舉用法

一、對(duì)枚舉型的變量賦值。

實(shí)例將枚舉類型的賦值與基本數(shù)據(jù)類型的賦值進(jìn)行了對(duì)比:

方法1:先聲明變量,再對(duì)變量賦值

#includestdio.h

/*?定義枚舉類型?*/

enum?DAY?{?MON=1,?TUE,?WED,?THU,?FRI,?SAT,?SUN?};

void?main()

{

/*?使用基本數(shù)據(jù)類型聲明變量,然后對(duì)變量賦值?*/

int?x,?y,?z;

x?=?10;

y?=?20;

z?=?30;

/*?使用枚舉類型聲明變量,再對(duì)枚舉型變量賦值?*/

enum?DAY?yesterday,?today,?tomorrow;

yesterday?=?MON;

today?????=?TUE;

tomorrow??=?WED;

printf("%d?%d?%d?\n",?yesterday,?today,?tomorrow);

}

方法2:聲明變量的同時(shí)賦初值

#include?stdio.h

/*?定義枚舉類型?*/

enum?DAY?{?MON=1,?TUE,?WED,?THU,?FRI,?SAT,?SUN?};

void?main()

{

/*?使用基本數(shù)據(jù)類型聲明變量同時(shí)對(duì)變量賦初值?*/

int?x=10,?y=20,?z=30;

/*?使用枚舉類型聲明變量同時(shí)對(duì)枚舉型變量賦初值?*/

enum?DAY?yesterday?=?MON,?

today?=?TUE,

tomorrow?=?WED;

printf("%d?%d?%d?\n",?yesterday,?today,?tomorrow);

}

方法3:定義類型的同時(shí)聲明變量,然后對(duì)變量賦值。

#include?stdio.h

/*?定義枚舉類型,同時(shí)聲明該類型的三個(gè)變量,它們都為全局變量?*/

enum?DAY?{?MON=1,?TUE,?WED,?THU,?FRI,?SAT,?SUN?}?yesterday,?today,?tomorrow;

/*?定義三個(gè)具有基本數(shù)據(jù)類型的變量,它們都為全局變量?*/

int?x,?y,?z;

void?main()

{

/*?對(duì)基本數(shù)據(jù)類型的變量賦值?*/

x?=?10;??y?=?20;??z?=?30;

/*?對(duì)枚舉型的變量賦值?*/

yesterday?=?MON;

today?????=?TUE;

tomorrow??=?WED;

printf("%d?%d?%d?\n",?x,?y,?z);?//輸出:10?20?30

printf("%d?%d?%d?\n",?yesterday,?today,?tomorrow);?//輸出:1?2?3

}

方法4:類型定義,變量聲明,賦初值同時(shí)進(jìn)行。

#include?stdio.h

/*?定義枚舉類型,同時(shí)聲明該類型的三個(gè)變量,并賦初值。它們都為全局變量?*/

enum?DAY

{

MON=1,?

TUE,

WED,

THU,

FRI,

SAT,

SUN?

}

yesterday?=?MON,?today?=?TUE,?tomorrow?=?WED;

/*?定義三個(gè)具有基本數(shù)據(jù)類型的變量,并賦初值。它們都為全局變量?*/

int?x?=?10,?y?=?20,?z?=?30;

void?main()

{

printf("%d?%d?%d?\n",?x,?y,?z);?//輸出:10?20?30

printf("%d?%d?%d?\n",?yesterday,?today,?tomorrow);?//輸出:1?2?3

}

2、對(duì)枚舉型的變量賦整數(shù)值時(shí),需要進(jìn)行類型轉(zhuǎn)換。

#include?stdio.h

enum?DAY?{?MON=1,?TUE,?WED,?THU,?FRI,?SAT,?SUN?};

void?main()

{

enum?DAY?yesterday,?today,?tomorrow;

yesterday?=?TUE;

today?=?(enum?DAY)?(yesterday?+?1);?//類型轉(zhuǎn)換

tomorrow?=?(enum?DAY)?30;?//類型轉(zhuǎn)換

//tomorrow?=?3;?//錯(cuò)誤

printf("%d?%d?%d?\n",?yesterday,?today,?tomorrow);?//輸出:2?3?30

}

3、使用枚舉型變量

#includestdio.h

enum

{?

BELL??????????=?'\a',

BACKSPACE?=?'\b',

HTAB?????????=?'\t',

RETURN??????=?'\r',

NEWLINE????=?'\n',?

VTAB?????????=?'\v',

SPACE???????=?'?'

};

enum?BOOLEAN?{?FALSE?=?0,?TRUE?}?match_flag;

void?main()

{

int?index?=?0;

int?count_of_letter?=?0;

int?count_of_space?=?0;

char?str[]?=?"I'm?Ely?efod";

match_flag?=?FALSE;

for(;?str[index]?!=?'\0';?index++)

if(?SPACE?!=?str[index]?)

count_of_letter++;

else

{

match_flag?=?(enum?BOOLEAN)?1;

count_of_space++;

}

printf("%s?%d?times?%c",?match_flag???"match"?:?"not?match",?count_of_space,?NEWLINE);

printf("count?of?letters:?%d?%c%c",?count_of_letter,?NEWLINE,?RETURN);

}

C語(yǔ)言中的枚舉函數(shù)有什么用呢?

如果一個(gè)變量只有幾種可能的值,就可以定義為枚舉類型。枚舉 就是將變量的值一一列舉出來(lái),變量的值只限于列舉出來(lái)值的范圍。聲名枚舉類型用enum開(kāi)頭。如enum number{1,2,3};就讓number的值只能是1、2或3,其他是錯(cuò)誤的。望采納。

當(dāng)前文章:c語(yǔ)言函數(shù)中枚舉的索引,c語(yǔ)言枚舉法例題
標(biāo)題鏈接:http://chinadenli.net/article41/dsesced.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄外貿(mào)網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)響應(yīng)式網(wǎng)站用戶體驗(yàn)服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司