當前位置:首頁 » 編程語言 » 枚舉c語言

枚舉c語言

發布時間: 2023-02-19 13:26:20

A. c語言枚舉類型enum用法

c語言枚舉類型enum用法如下:


(1) 枚舉型是一個集合,集合中的元素(枚舉成員)是一些命名的整型常量,元素之間用逗號,隔開。


(2)DAY是一個標識符,可以看成這個集合的名字,是一個可選項,即是可有可無的項。


(3) 第一個枚舉成員的默認值為整型的0,後續枚舉成員的值在前一個成員上加1。在當前值沒有賦值的情況下,枚舉類型的當前值總是前一個值+1.


(4) 可以人為設定枚舉成員的值,從而自定義某個范圍內的整數。


(5) 枚舉型是預處理指令#define的替代。


(6) 類型定義以分號;結束。

typeName是枚舉類型的名字,花括弧裡面的元素(枚舉成員)是常量而不是變數,這個一定要搞清楚,因為枚舉成員的是常量,所以不能對它們賦值,只能將它們的值賦給其他的變數。


枚舉是 C 語言中的一種基本數據類型,它可以讓數據更簡潔,更易讀。

B. C語言枚舉類型是什麼意思

枚舉類型C語言或C++的一種構造類型,它用於聲明一組命名的常數。 x0dx0a(1)枚舉的聲明:枚舉聲明用於聲明新的枚舉類型。 x0dx0a訪問修辭符 enum 枚舉名:基礎類型 x0dx0a{ x0dx0a枚舉成員 x0dx0a} ;x0dx0a基礎類型必須能夠表示該枚舉中定義的所有枚舉數值。枚舉聲明可以顯式地聲明 byte、sbyte、short、ushort、int、uint、long 或 ulong 類型作為對應的基礎類型。沒有顯式地聲明基礎類型的枚舉聲明意味著所對應的基礎類型是 int。 x0dx0a(2)枚舉成員 x0dx0a枚舉成員是該枚舉類型的命名常數。任意兩個枚舉成員不能具有相同的名稱。每個枚舉成員均具有相關聯的常數值。此值的類型就是枚舉的基礎類型。每個枚舉成員的常數值必須在該枚舉的基礎類型的范圍之內。 x0dx0a示例: x0dx0apublic enum TimeofDay:uint x0dx0a{ x0dx0aMorning=-3, x0dx0aAfternoon=-2, x0dx0aEvening=-1 x0dx0a} ;x0dx0a產生編譯時錯誤,原因是常數值 -1、-2 和 _3 不在基礎整型 uint 的范圍內。 x0dx0a(3)枚舉成員默認值 x0dx0a在枚舉類型中聲明的第一個枚舉成員它的默值為零。 x0dx0a以後的枚舉成員值是將前一個枚舉成員(按照文本順序)的值加 1 得到的。這樣增加後的值必須在該基礎類型可表示的值的范圍內;否則,會出現編譯時錯誤。 x0dx0a示例: x0dx0apublic enum TimeofDay:uint x0dx0a{ x0dx0aMorning, x0dx0aAfternoon, x0dx0aEvening x0dx0a} ;x0dx0aMorning的值為0,Afternoon的值為1,Evening的值為2。 x0dx0a(4)為枚舉成員顯示賦值 x0dx0a允許多個枚舉成員有相同的值. x0dx0a沒有顯示賦值的枚舉成員的值,總是前一個枚舉成員的值+1. x0dx0a示例 x0dx0apublic enum Number x0dx0a{ x0dx0aa=1, x0dx0ab, x0dx0ac=1, x0dx0ad x0dx0a} ;x0dx0ab的值為2,d的值為2. x0dx0a注意:以上枚舉值都不能超過它的基礎類型範圍。否則會報錯. x0dx0a(5)枚舉類型與基礎類型的轉換 x0dx0a基礎類型不能隱式轉換為枚舉類型 x0dx0a枚舉類型也不能隱式轉換為基礎類型 x0dx0a示例: x0dx0apublic enum Number x0dx0a{ x0dx0aa, x0dx0ab, x0dx0ac, x0dx0ad x0dx0a} ;x0dx0aclass Test x0dx0a{ x0dx0apublic static void Main() x0dx0a{ x0dx0aint i=Number.a;//錯誤,要強制類型轉換(int)Number.a x0dx0aNumber n; x0dx0an=2 //錯誤,要強制類型轉換(Number)2 x0dx0a} x0dx0a} x0dx0a(6)System.Enum類型 x0dx0aSystem.Enum 類型是所有枚舉類型的抽象基類,並且從 System.Enum 繼承的成員在任何枚舉類型中都可用。 x0dx0aSystem.Enum 本身不是枚舉類型。相反,它是一個類類型,所有枚舉類型都是從它派生的。 x0dx0aSystem.Enum 從類型 System.ValueType派生 x0dx0a(7)使用枚舉類型 x0dx0ausing System; x0dx0apublic enum TimeofDay x0dx0a{ x0dx0aMorning, x0dx0aAfternoon, x0dx0aEvening x0dx0a} ;x0dx0aclass Test x0dx0a{ x0dx0astatic void WriteGreeting(TimeofDay timeofDay) x0dx0a{ x0dx0aswitch(timeofDay) x0dx0a{ x0dx0acase TimeofDay.Morning: x0dx0aConsole.WriteLine("good morning"); x0dx0abreak; x0dx0acase TimeofDay.Afternoon: x0dx0aConsole.WriteLine("good afternoon"); x0dx0abreak; x0dx0acase TimeofDay.Evening: x0dx0aConsole.WriteLine("good evening"); x0dx0abreak; x0dx0a} x0dx0a} x0dx0astatic void Main() x0dx0a{ x0dx0aWriteGreeting(TimeofDay.Morning); x0dx0aWriteGreeting(TimeofDay.Evening); x0dx0aWriteGreeting(TimeofDay.Afternoon); x0dx0a} x0dx0a}

C. C語言枚舉類型是什麼意思

就是你聲明的這個枚舉變數的值,只能取其中的東西,比如:enum {Monday,Tuesday,Wednesday,Thursday,Friday} weekday;那weekday這個變臉的值只能是{}中的值。(他們分別對應數字0,1,2,3,4,因為枚舉型變數也是整型)

D. enum在c語言中是什麼意思

enum是計算機編程語言中的一種數據類型。枚舉類型:在實際問題中,有些變數的取值被限定在一個有限的范圍內。

C語言提供了一種稱為「枚舉」的類型。在「枚舉」類型的定義中列舉出所有可能的取值,被說明為該「枚舉」類型的變數取值不能超過定義的范圍。

例如,一個星期內只有七天,一年只有十二個月,一個班每周有六門課程等。如果把這些量說明為整型,字元型或其它類型顯然是不妥當的。

數據類型關鍵字

short:修飾int,短整型數據,可省略被修飾的int。(K&R時期引入)

long:修飾int,長整型數據,可省略被修飾的int。(K&R時期引入)

long long:修飾int,超長整型數據,可省略被修飾的int。(C99標准新增)

signed:修飾整型數據,有符號數據類型。(C89標准新增)

unsigned:修飾整型數據,無符號數據類型。(K&R時期引入)

restrict:用於限定和約束指針,並表明指針是訪問一個數據對象的初始且唯一的方式。(C99標准新增)

E. 誰能給我講講C語言中的枚舉是什麼意思啊!

枚舉類型可以理解為一個集合,枚舉成員是集合內的一些帶有名字的整型常量,成員之間用逗號隔開。枚舉的名字可有可無,只是一個標識。枚舉中,
第一個枚舉成員默認值為整型的0,後續枚舉成員的值在前一個成員上加1。當然也可以人為設定枚舉成員的初始值。例如enum
person
{
man,
women};
enum
person
{
man=1,
women};
通常用枚舉來列舉一些有限數量的變數,也就是可列舉的變數,例如一周七天,就可以用枚舉實現。

F. C語言中的枚舉類型

如果一個變數只有幾種可能的值,則可以定義為 枚舉類型 。所謂「枚舉」是指將變數的值一一列舉出來,變數的值只限於列舉出來的值的范圍內。
聲明枚舉類型用 enum 開頭。例如:

聲明了一個枚舉類型enum weekday,則可以用此類型來定義變數。例如:

也可以直接定義枚舉變數,例如:

其中sun、mon、…、sat稱為 枚舉元素 枚舉常量
說明:
1、在C編譯中,對枚舉元素按常量處理,故稱為 枚舉常量 。它們不是變數,不能進行賦值。例如 sun = 7; mon = 1; 是錯誤的。
2、枚舉元素作為常量,是有值的。C語言編譯按定義時的順序使它們的值為0、1、2……也可以在定義時,指定枚舉元素的值,例如:

3、枚舉值可以用來作判斷比較。例如:

4、一個證書不能直接賦值給一個枚舉變數。例如 workday=1; 是錯誤的。它們屬於不同的類型。應該先進性強制類型轉換,然後才能賦值。例如:

相當於將序號為2的枚舉元素賦值給workday,相當於

G. C語言枚舉類型怎麼用

枚舉類型定義時,定義的是可以枚舉的常量,常量符號的值在定義枚舉時已經初始化完成。
有沒有枚舉變數都不影響已經存在的可枚舉常量,
定義枚舉變數將來也是要賦值某一枚舉常量的。

比如:
WeekTypedef day=Monday;

H. C語言的枚舉類型知識

導語:定義一個變數是枚舉類型,可以先定義一個枚舉類型名,然後再說明這個變數是該枚舉類型。下面是C語言的枚舉類型知識,歡迎閱讀:

在實際應用中,有的變數只有幾種可能取值。如人的性別只有兩種可能取值,星期只有七種可能取值。在 C 語言中對這樣取值比較特殊的變數可以定義為枚舉類型。所謂枚舉是指將變數的值一一列舉出來,變數只限於列舉出來的值的范圍內取值。

例如:

enum weekday{sun,mon,tue,wed,thu,fri,sat};

定義了一個枚舉類型名 enum weekday,然後定義變數為該枚舉類型。例如:

enum weekday day;

當然,也可以直接定義枚舉類型變數。例如:

enum weekday{sun,mon,tue,wed,thu,fri,sat} day;

其中,sum,mon,…,sat 等稱為枚舉元素或枚舉常量,它們是用戶定義的標識符。

需要說明的有以下幾點。

① 枚舉元素不是變數,而是常數,因此枚舉元素又稱為枚舉常量。因為是常量,所以不能對枚舉元素進行賦值。

② 枚舉元素作為常量,它們是有值的,C 語言在編譯時按定義的順序使它們的值為,1,2,…。

在上面的說明中,sun 的值為 0,mon 的值為 1,…sat 的.值為 6,如果有賦值語句

day=mon;

則 day 變數的值為 1。當然,這個變數值是可以輸出的。例如:

printf ("%d",day);

將輸出整數 1。

如果在定義枚舉類型時指定元素的值,也可以改變枚舉元素的值。例如:

enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat}day;

這時,sun 為 7,mon 為 1,以後元素順次加 1,所以 sat 就是 6 了。

③ 枚舉值可以用來作判斷。例如:

if (day==mon) {…}

if (day>mon) {…}

枚舉值的比較規則是:按其在說明時的順序號比較,如果說明時沒有人為指定,則第一個枚舉元素的值認作 0。例如,mon>sun,sat>fri。

C 語言教程 ?216?

④ 一個整數不能直接賦給一個枚舉變數,必須強制進行類型轉換才能賦值。例如:

day=(enum weekday)2;

這個賦值的意思是,將順序號為 2 的枚舉元素賦給 day,相當於workday=tue;

【例 11.6】從鍵盤輸入一個整數,顯示與該整數對應的枚舉常量的英文名稱。

# include

void main( )

{

enum weekday {sun,mon,tue,wed,thu,fri,sat} day;

int k;

printf("input a number(0--6)");

scanf("%d",&k);

day=(enum weekday)k;

switch(day)

{

case sun: printf("sunday/n");break;

case mon: printf("monday/n");break;

case tue: printf("tuesday/n");break;

case wed: printf("wednesday/n");break;

case thu: printf("thursday/n");break;

case fri: printf("friday/n");break;

case sat: printf("satday/n");break;

default: printf("input error/n");break;

}

}

程序運行結果為:

input a number(0--6)1

monday

在該程序中,枚舉常量與枚舉變數可以進行比較,但要輸出枚舉常量對應的英文單詞,不能使用以下語句:

printf(" %s",mon);

因為枚舉常量 mon 為整數值,而非字元串。

在使用枚舉變數時,主要關心的不是它的值的大小,而是其表示的狀態。

註:以下全部代碼的執行環境為VC++ 6.0

在程序中,可能需要為某些整數定義一個別名,我們可以利用預處理指令#define來完成這項工作,您的代碼可能是:

#define MON 1

#define TUE 2

#define WED 3

#define THU 4

#define FRI 5

#define SAT 6

#define SUN 7

在此,我們定義一種新的數據類型,希望它能完成同樣的工作。這種新的數據類型叫枚舉型。

1. 定義一種新的數據類型 - 枚舉型

以下代碼定義了這種新的數據類型 - 枚舉型

enum DAY

{

MON=1, TUE, WED, THU, FRI, SAT, SUN

};

(1) 枚舉型是一個集合,集合中的元素(枚舉成員)是一些命名的整型常量,元素之間用逗號,隔開。

(2) DAY是一個標識符,可以看成這個集合的名字,是一個可選項,即是可有可無的項。

(3) 第一個枚舉成員的默認值為整型的0,後續枚舉成員的值在前一個成員上加1。

(4) 可以人為設定枚舉成員的值,從而自定義某個范圍內的整數。

(5) 枚舉型是預處理指令#define的替代。

(6) 類型定義以分號;結束。

2. 使用枚舉類型對變數進行聲明

新的數據類型定義完成後,它就可以使用了。我們已經見過最基本的數據類型,如:整型int, 單精度浮點型float, 雙精度浮點型double, 字元型char, 短整型short等等。用這些基本數據類型聲明變數通常是這樣:

char a; //變數a的類型均為字元型char

char letter;

int x,

y,

z; //變數x,y和z的類型均為整型int

int number;

double m, n;

double result; //變數result的類型為雙精度浮點型double

既然枚舉也是一種數據類型,那麼它和基本數據類型一樣也可以對變數進行聲明。

方法一:枚舉類型的定義和變數的聲明分開

enum DAY

{

MON=1, TUE, WED, THU, FRI, SAT, SUN

};

enum DAY yesterday;

enum DAY today;

enum DAY tomorrow; //變數 tomorrow的類型為枚舉型enum DAY

enum DAY good_day, bad_day; //變數good_day和bad_day的類型均為枚舉型enum DAY

方法二:類型定義與變數聲明同時進行:

enum //跟第一個定義不同的是,此處的標號DAY省略,這是允許的。

{

saturday,

sunday = 0,

monday,

tuesday,

wednesday,

thursday,

friday

} workday; //變數workday的類型為枚舉型enum DAY

enum week { Mon=1, Tue, Wed, Thu, Fri Sat, Sun} days; //變數days的類型為枚舉型enum week

enum BOOLEAN { false, true } end_flag, match_flag; //定義枚舉類型並聲明了兩個枚舉型變數

方法三:用typedef關鍵字將枚舉類型定義成別名,並利用該別名進行變數聲明:

typedef enum workday

{

saturday,

sunday = 0,

monday,

tuesday,

wednesday,

thursday,

friday

} workday; //此處的workday為枚舉型enum workday的別名

workday today, tomorrow; //變數today和tomorrow的類型為枚舉型workday,也即enum workday

enum workday中的workday可以省略:

typedef enum

{

saturday,

sunday = 0,

monday,

tuesday,

wednesday,

thursday,

friday

} workday; //此處的workday為枚舉型enum workday的別名

workday today, tomorrow; //變數today和tomorrow的類型為枚舉型workday,也即 enum workday。


I. C語言結構、聯合和枚舉(struct、union、enum)

@[TOC]

結構:具有不同數據類型的值(成員)的集合。
聯合跟結構很類似,不同在於聯合的成員共享同一存儲空間。

結構成員通過名字而不是位置訪問(與數組的區別)

指定初始化:不需要與結構成員的順序一致

結構的賦值: part2 = part1 ,直接賦值(與數組不同)

不能用==和!=判斷結構是否相等

命名結構時,兩種寫法都可以,但是 結構用於鏈表時,必須使用結構標記。

結構裡面也允許嵌套結構。

編譯器只為最大的成員分配足夠的內存空間

結構變數的成員存儲在 不同 的內存地址中,聯合的成員存儲在 同一 內存地址中。

聯合的作用:用聯合來節省空間
構造混合的數據結構

每次對聯合的成員賦值,都由程序負責改變標記欄位的內容

許多程序中,我們只具有少量有意義的值。
我們為這種具有少量可能值的變數提供了一種專用類型——枚舉。

區別:枚舉常量的名字必須不同於 作用於范圍內 聲明的其他標識符。

枚舉常量遵循C語言的作用域規則:如果枚舉聲明在函數體內,那麼它的常量對外部函數來說是不可見的。

默認情況下,編譯器會把整數0,1,2……賦值給特定枚舉中的變數

如果想要指定變數的值,可以在聲明時指定。

當沒有為枚舉常量指定值時,它的值比前面一個值大1.

C語言允許把枚舉常量和普通整數混合。

熱點內容
ftp文件注釋 發布:2024-11-08 09:20:06 瀏覽:169
大疆上傳視頻 發布:2024-11-08 09:19:58 瀏覽:637
cwebservice文件上傳 發布:2024-11-08 09:09:18 瀏覽:583
王牌戰爭有沒有什麼和平的伺服器 發布:2024-11-08 09:01:36 瀏覽:374
centos7刪除文件夾 發布:2024-11-08 09:00:58 瀏覽:990
伺服器可以分成多個獨立的電腦嗎 發布:2024-11-08 08:56:15 瀏覽:202
如何運行gcc編譯的文件 發布:2024-11-08 08:51:49 瀏覽:498
javaztree 發布:2024-11-08 08:50:55 瀏覽:510
蘋果手機怎麼能玩安卓版騰訊游戲 發布:2024-11-08 08:50:55 瀏覽:523
ftp推送 發布:2024-11-08 08:49:46 瀏覽:751