中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言中如何使用枚舉類型

發布時間:2021-07-02 16:32:49 來源:億速云 閱讀:207 作者:Leah 欄目:互聯網科技

本篇文章為大家展示了C語言中如何使用枚舉類型,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

枚舉是C語言里面所定義的一種基本數據類型,它可以使程序變得更加簡介,更加易讀。枚舉的定義類似于我們數學里面的有限集合,如一周有7天,分別是SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY。那我們在編程時定義這些星期天數的時候,就可以將其定義為一個枚舉,此后的使用中只要用到這個枚舉類型定義的變量,其值也就是這七個星期天數中的任意一天。以下內容,我們就以這七個星期天數為例,開始我們枚舉的講解。
枚舉的說明與結構和聯合相似, 其形式為:
   
   
   enum 枚舉名{
      標識符[=整型常數],  
      標識符[=整型常數],  
      ...
      標識符[=整型常數]
    } 枚舉變量;

當然,我們也可以使用typedef關鍵詞,將一個枚舉定義成一種模板數據類型,其形式為:
   
   
   typedef enum
    {
      標識符[=整型常數],
      標識符[=整型常數],
      ...
      標識符[=整型常數]
    } 枚舉數據類型;
與結構體和共用體不一樣的是,一個枚舉內部的成員不能被顯示地指定數據類型,枚舉中的成員只能是整型數值,這些數值你可以顯示地指出來,或者使用編譯器分配的默認值。另外,枚舉內部的成員并不是變量,它們只不過是一系列的標識符而已,其屬性和常量一致,因此在我們使用枚舉內部成員的時候,除了初始化以外便不可以再隨便對其賦值了。如,我們可以將一周七天定義成一種枚舉類型。
   
   
   
typedef enum    
   {      SUNDAY= 0,      MONDAY= 1,      TUESDAY = 2,      WEDNESDAY = 3,      THURSDAY = 4,      FRIDAY = 5,      SATURDAY = 6    } EWeekday_t;//定義枚舉類型    
   EWeekday_t Wekday; //定義枚舉變量      
這里再注意一下枚舉定義時和結構體聯合體定義的區別,每一項數據成員之后都是以逗號結尾的,而不是分號。最后一項后面的逗號可以省略。
以上就是定義一個枚舉類型,并且顯示地指明這個枚舉內部每一個標識符的值。一旦當枚舉變量Wekday被定義好之后,我們就可以使用枚舉定義時里面的標識符對其進行賦值了,如Wekday = THURSDAY。
當然,如果我們不想對每一項的枚舉標識符進行賦值,我們也可以使用省略的寫法來完成,只要顯示地指明出第一個成員的值,后面的枚舉值都會在第一個成員值的基礎上往后增1。
typedef enum{  SUNDAY= 0,  MONDAY,  TUESDAY,  WEDNESDAY,  THURSDAY,  FRIDAY ,  SATURDAY} EWeekday_t;//定義枚舉類型EWeekday_t Wekday; //定義枚舉變量
上面這段代碼,雖然沒有顯示地指明枚舉中標識符的每個數值,但是它顯示地指明了SUNDAY為0,那么編譯器就會顯示地在0的基礎上分別遞增1,并且按順序賦給下面的標識符,如MONDAY就為1,TUESDAY就為2,依次類推。如圖1所示,這里注意下,我們對枚舉變量賦值時,雖然可以直接使用標識符,如Wekday= MONDAY,但是用printf函數打印時,我們還是需要使用“%d”將其作為整數打印出來,打印的結果也是一個個整型數字。
 C語言中如何使用枚舉類型
圖1枚舉變量的打印

如果中途對枚舉中某一標識符再賦值,那么這個被賦值標識符后面的標識符都會順延加1。如圖2所示。
C語言中如何使用枚舉類型
圖2 中途修改枚舉標識符的值

當然,枚舉中標識符的值可以出現重復,但無論怎么變,枚舉中的標識符都滿足一條規律,即顯式指明標識符后面的標識符都會增1。如圖3所示,我們將標識符WEDNESDAY再顯示地指明為0,那么其后面的標識符都會從0開始自增。
C語言中如何使用枚舉類型
圖3 枚舉標識符顯式重復指明數值
還需要注意一點的是,在C語言中,枚舉只是一種讓程序變得明了的手段,并不能對變量的值進行限定,這一點很重要,因此,你可以對枚舉任意賦值。對于MinGW來說,哪怕直接對枚舉變量賦值浮點數,編譯器也不會拋出警告,最多將其作為整數來處理。如圖4所示。
C語言中如何使用枚舉類型


上述內容就是C語言中如何使用枚舉類型,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巨野县| 唐河县| 开平市| 庆阳市| 日喀则市| 潼关县| 社旗县| 萝北县| 巴彦淖尔市| 泗洪县| 朔州市| 星子县| 玛沁县| 舟曲县| 昭觉县| 舞阳县| 汤原县| 开封县| 永川市| 东源县| 丽水市| 杂多县| 岳阳市| 芦溪县| 房产| 沙洋县| 阜康市| 勃利县| 田林县| 崇左市| 新干县| 和龙市| 江西省| 南汇区| 永济市| 和硕县| 苍山县| 玉溪市| 顺义区| 玉林市| 西吉县|