欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語(yǔ)言實(shí)現(xiàn)enum枚舉

 更新時(shí)間:2021年06月21日 17:17:04   投稿:jbzj  
在實(shí)際編程中,有些數(shù)據(jù)的取值往往是有限的,只能是非常少量的整數(shù),并且最好為每個(gè)值都取一個(gè)名字,以方便在后續(xù)代碼中使用,比如一個(gè)星期只有七天,一年只有十二個(gè)月,一個(gè)班每周有六門(mén)課程等。 以每周七天為例,我們可以使用#define命令來(lái)給每天指定一個(gè)名字

枚舉是 C 語(yǔ)言中的一種基本數(shù)據(jù)類(lèi)型,它可以讓數(shù)據(jù)更簡(jiǎn)潔,更易讀。

枚舉語(yǔ)法定義格式為:

enum 枚舉名 {枚舉元素1,枚舉元素2,……};

接下來(lái)我們舉個(gè)例子,比如:一星期有 7 天,如果不用枚舉,我們需要使用 #define 來(lái)為每個(gè)整數(shù)定義一個(gè)別名:

#define MON  1
#define TUE  2
#define WED  3
#define THU  4
#define FRI  5
#define SAT  6
#define SUN  7

這個(gè)看起來(lái)代碼量就比較多,接下來(lái)我們看看使用枚舉的方式:

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

這樣看起來(lái)是不是更簡(jiǎn)潔了。

注意:第一個(gè)枚舉成員的默認(rèn)值為整型的 0,后續(xù)枚舉成員的值在前一個(gè)成員上加 1。我們?cè)谶@個(gè)實(shí)例中把第一個(gè)枚舉成員的值定義為 1,第二個(gè)就為 2,以此類(lèi)推。

可以在定義枚舉類(lèi)型時(shí)改變枚舉元素的值:

enum season {spring, summer=3, autumn, winter};

沒(méi)有指定值的枚舉元素,其值為前一元素加 1。也就說(shuō) spring 的值為 0,summer 的值為 3,autumn 的值為 4,winter 的值為 5

枚舉變量的定義

前面我們只是聲明了枚舉類(lèi)型,接下來(lái)我們看看如何定義枚舉變量。
我們可以通過(guò)以下三種方式來(lái)定義枚舉變量
1、先定義枚舉類(lèi)型,再定義枚舉變量
enum DAY
{
      MON=1, TUE, WED, THU, FRI, SAT, SUN
};
enum DAY day;

2、定義枚舉類(lèi)型的同時(shí)定義枚舉變量

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

3、省略枚舉名稱,直接定義枚舉變量

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

實(shí)例

#include <stdio.h>
 
enum DAY
{
      MON=1, TUE, WED, THU, FRI, SAT, SUN
};
 
int main()
{
    enum DAY day;
    day = WED;
    printf("%d",day);
    return 0;
}

以上實(shí)例輸出結(jié)果為:

3

在C 語(yǔ)言中,枚舉類(lèi)型是被當(dāng)做 int 或者 unsigned int 類(lèi)型來(lái)處理的,所以按照 C 語(yǔ)言規(guī)范是沒(méi)有辦法遍歷枚舉類(lèi)型的。

不過(guò)在一些特殊的情況下,枚舉類(lèi)型必須連續(xù)是可以實(shí)現(xiàn)有條件的遍歷。

以下實(shí)例使用 for 來(lái)遍歷枚舉的元素:

實(shí)例

#include <stdio.h>
 
enum DAY
{
      MON=1, TUE, WED, THU, FRI, SAT, SUN
} day;
int main()
{
    // 遍歷枚舉元素
    for (day = MON; day <= SUN; day++) {
        printf("枚舉元素:%d \n", day);
    }
}

以上實(shí)例輸出結(jié)果為:

枚舉元素:1 

枚舉元素:2 

枚舉元素:3 

枚舉元素:4 

枚舉元素:5 

枚舉元素:6 

枚舉元素:7

以下枚舉類(lèi)型不連續(xù),這種枚舉無(wú)法遍歷。

enum
{
    ENUM_0,
    ENUM_10 = 10,
    ENUM_11
};

枚舉在 switch 中的使用:

實(shí)例

#include <stdio.h>
#include <stdlib.h>
int main()
{
 
    enum color { red=1, green, blue };
 
    enum  color favorite_color;
 
    /* 用戶輸入數(shù)字來(lái)選擇顏色 */
    printf("請(qǐng)輸入你喜歡的顏色: (1. red, 2. green, 3. blue): ");
    scanf("%u", &favorite_color);
 
    /* 輸出結(jié)果 */
    switch (favorite_color)
    {
    case red:
        printf("你喜歡的顏色是紅色");
        break;
    case green:
        printf("你喜歡的顏色是綠色");
        break;
    case blue:
        printf("你喜歡的顏色是藍(lán)色");
        break;
    default:
        printf("你沒(méi)有選擇你喜歡的顏色");
    }
 
    return 0;
}

以上實(shí)例輸出結(jié)果為:

請(qǐng)輸入你喜歡的顏色: (1. red, 2. green, 3. blue): 1

你喜歡的顏色是紅色

將整數(shù)轉(zhuǎn)換為枚舉

以下實(shí)例將整數(shù)轉(zhuǎn)換為枚舉:

實(shí)例

#include <stdio.h>
#include <stdlib.h>
 
int main()
{
 
    enum day
    {
        saturday,
        sunday,
        monday,
        tuesday,
        wednesday,
        thursday,
        friday
    } workday;
 
    int a = 1;
    enum day weekend;
    weekend = ( enum day ) a;  //類(lèi)型轉(zhuǎn)換
    //weekend = a; //錯(cuò)誤
    printf("weekend:%d",weekend);
    return 0;
}

以上實(shí)例輸出結(jié)果為:

weekend:1

到此這篇關(guān)于C enum(枚舉)的文章就介紹到這了,更多相關(guān)枚舉內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C語(yǔ)言單鏈表貪吃蛇小游戲

    C語(yǔ)言單鏈表貪吃蛇小游戲

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言單鏈表貪吃蛇小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • JsonCpp中double的問(wèn)題解決

    JsonCpp中double的問(wèn)題解決

    本文主要介紹了JsonCpp中double的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C語(yǔ)言中的數(shù)據(jù)整除判斷問(wèn)題

    C語(yǔ)言中的數(shù)據(jù)整除判斷問(wèn)題

    這篇文章主要介紹了C語(yǔ)言中的數(shù)據(jù)整除判斷問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C++中四種加密算法之DES源代碼

    C++中四種加密算法之DES源代碼

    本篇文章主要介紹了C++中四種加密算法之DES源代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。
    2016-11-11
  • CLion搭建配置C++開(kāi)發(fā)環(huán)境的圖文教程 (MinGW-W64 GCC-8.1.0)

    CLion搭建配置C++開(kāi)發(fā)環(huán)境的圖文教程 (MinGW-W64 GCC-8.1.0)

    這篇文章主要介紹了CLion搭建配置C++開(kāi)發(fā)環(huán)境的教程 (MinGW-W64 GCC-8.1.0),本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • C語(yǔ)言實(shí)現(xiàn)職工工資管理系統(tǒng)

    C語(yǔ)言實(shí)現(xiàn)職工工資管理系統(tǒng)

    這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)職工工資管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • linux c++模擬簡(jiǎn)易網(wǎng)絡(luò)爬蟲(chóng)實(shí)例

    linux c++模擬簡(jiǎn)易網(wǎng)絡(luò)爬蟲(chóng)實(shí)例

    下面小編就為大家?guī)?lái)一篇linux c++模擬簡(jiǎn)易網(wǎng)絡(luò)爬蟲(chóng)實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • C++友元函數(shù)和友元類(lèi)的使用與區(qū)別

    C++友元函數(shù)和友元類(lèi)的使用與區(qū)別

    本文主要介紹了C++友元函數(shù)和友元類(lèi)的使用與區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • C語(yǔ)言簡(jiǎn)單實(shí)現(xiàn)快速排序

    C語(yǔ)言簡(jiǎn)單實(shí)現(xiàn)快速排序

    快速排序是一種不穩(wěn)定排序,這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言簡(jiǎn)單實(shí)現(xiàn)快速排序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 使用C語(yǔ)言判斷當(dāng)前存儲(chǔ)大小端問(wèn)題

    使用C語(yǔ)言判斷當(dāng)前存儲(chǔ)大小端問(wèn)題

    這篇文章主要介紹了如何使用C語(yǔ)言判斷當(dāng)前存儲(chǔ)大小端問(wèn)題,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-02-02

最新評(píng)論