❶ C++錯誤:表達式必須包含整數或枚舉類型
枚舉類型在C#或C++,java,VB等一些計算機編程語言中是一種基本數據類型而不是構造數據類型,而在c語言等計算機編程語言中是一種構造數據類型。它用於聲明一組命名的常數,當一個變數有幾種可能的取值時,可以將它定義為枚舉類型。枚舉可以根據Integer、Long、Short或Byte中的任意一種數據類型來創建一種新型變數。這種變數能設置為已經定義的一組之中的一個,有效地防止用戶提供無效值。該變數可使代碼更加清晰,因為它可以描述特定的值。定義:是指將變數的值一一列出來,變數的值只限於列舉出來的值的范圍內.使用格式:枚舉類型放在窗體模塊、標准模塊或共用模塊中的聲明部分,通過enum語句來定義。.格式:[public|private]enumnamemembername[=constantexpression]membername[=constantexpression](maomi)…..Endenumpublic:表示該枚舉類型在整個工程中都是可見的(預設的)private:表示枚舉類型只在所聲明的模塊中是可見的。Name:枚舉類型的名稱。必須是一個合法的VB標識符,在定義該枚舉類型的變數或參數時用該名稱來指定類型.Membername:指定該枚舉類型的組成元素名稱.Constantexpression:枚舉類型的組成元素的值.如果沒有指定具體值,則所有賦的值或者是0或者比其直接前驅的值大1.元素的值也可以是別的enum類型.VB中將枚舉中的元素的值按長整數處理.如果將一個浮點數值賦給一個枚舉中的元素,VB會將該值取整為最接近的長整數.
❷ c語言中 ,枚舉類型enum 的枚舉值,可以是什麼類型的值 一定是 int型嗎
枚舉聲明可以顯式地聲明 byte、sbyte、short、ushort、int、uint、long 或 ulong 類型作為對應的基礎類型。沒有顯式地聲明基礎類型的枚舉聲明意味著所對應的基礎類型是 int
❸ 表達式必須具有算術或未區分范圍的枚舉類型
C/C++中枚舉類型(enum)
如果一個變數需要幾種可能存在的值,那麼就可以被定義成為枚舉類型。之所以叫枚舉就是說將變數或者叫對象可能存在的情況也可以說是可能的值一一例舉出來。
舉個例子來說明一下吧,為了讓大家更明白一點,比如一個鉛筆盒中有一支筆,但在沒有打開之前並不知道它是什麼筆,可能是鉛筆也可能是鋼筆,這里有兩種可能,那麼就可以定義一個枚舉類型來表示它!
enum box{pencil,pen};//這里就定義了一個枚舉類型的變數叫box,這個枚舉變數內含有兩個元素也稱枚舉元素在這里是pencil和pen,分別表示鉛筆和鋼筆。
這里要說一下,如果想定義兩個具有同樣特性枚舉類型的變數那麼可以用如下的兩種方式進行定義!
❹ c語言枚舉用法
一、對枚舉型的變數賦值。
實例將枚舉類型的賦值與基本數據類型的賦值進行了對比:
方法1:先聲明變數,再對變數賦值
#include<stdio.h>
/*定義枚舉類型*/
enumDAY{MON=1,TUE,WED,THU,FRI,SAT,SUN};
voidmain()
{
/*使用基本數據類型聲明變數,然後對變數賦值*/
intx,y,z;
x=10;
y=20;
z=30;
/*使用枚舉類型聲明變數,再對枚舉型變數賦值*/
enumDAYyesterday,today,tomorrow;
yesterday=MON;
today=TUE;
tomorrow=WED;
printf("%d%d%d ",yesterday,today,tomorrow);
}
方法2:聲明變數的同時賦初值
#include<stdio.h>
/*定義枚舉類型*/
enumDAY{MON=1,TUE,WED,THU,FRI,SAT,SUN};
voidmain()
{
/*使用基本數據類型聲明變數同時對變數賦初值*/
intx=10,y=20,z=30;
/*使用枚舉類型聲明變數同時對枚舉型變數賦初值*/
enumDAYyesterday=MON,
today=TUE,
tomorrow=WED;
printf("%d%d%d ",yesterday,today,tomorrow);
}
方法3:定義類型的同時聲明變數,然後對變數賦值。
#include<stdio.h>
/*定義枚舉類型,同時聲明該類型的三個變數,它們都為全局變數*/
enumDAY{MON=1,TUE,WED,THU,FRI,SAT,SUN}yesterday,today,tomorrow;
/*定義三個具有基本數據類型的變數,它們都為全局變數*/
intx,y,z;
voidmain()
{
/*對基本數據類型的變數賦值*/
x=10;y=20;z=30;
/*對枚舉型的變數賦值*/
yesterday=MON;
today=TUE;
tomorrow=WED;
printf("%d%d%d ",x,y,z);//輸出:102030
printf("%d%d%d ",yesterday,today,tomorrow);//輸出:123
}
方法4:類型定義,變數聲明,賦初值同時進行。
#include<stdio.h>
/*定義枚舉類型,同時聲明該類型的三個變數,並賦初值。它們都為全局變數*/
enumDAY
{
MON=1,
TUE,
WED,
THU,
FRI,
SAT,
SUN
}
yesterday=MON,today=TUE,tomorrow=WED;
/*定義三個具有基本數據類型的變數,並賦初值。它們都為全局變數*/
intx=10,y=20,z=30;
voidmain()
{
printf("%d%d%d ",x,y,z);//輸出:102030
printf("%d%d%d ",yesterday,today,tomorrow);//輸出:123
}
2、對枚舉型的變數賦整數值時,需要進行類型轉換。
#include<stdio.h>
enumDAY{MON=1,TUE,WED,THU,FRI,SAT,SUN};
voidmain()
{
enumDAYyesterday,today,tomorrow;
yesterday=TUE;
today=(enumDAY)(yesterday+1);//類型轉換
tomorrow=(enumDAY)30;//類型轉換
//tomorrow=3;//錯誤
printf("%d%d%d ",yesterday,today,tomorrow);//輸出:2330
}
3、使用枚舉型變數
#include<stdio.h>
enum
{
BELL='a',
BACKSPACE='',
HTAB=' ',
RETURN=' ',
NEWLINE=' ',
VTAB='v',
SPACE=''
};
enumBOOLEAN{FALSE=0,TRUE}match_flag;
voidmain()
{
intindex=0;
intcount_of_letter=0;
intcount_of_space=0;
charstr[]="I'mElyefod";
match_flag=FALSE;
for(;str[index]!='