最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言實現(xiàn)enum枚舉

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

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

枚舉語法定義格式為:

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

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

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

這個看起來代碼量就比較多,接下來我們看看使用枚舉的方式:

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

這樣看起來是不是更簡潔了。

注意:第一個枚舉成員的默認值為整型的 0,后續(xù)枚舉成員的值在前一個成員上加 1。我們在這個實例中把第一個枚舉成員的值定義為 1,第二個就為 2,以此類推。

可以在定義枚舉類型時改變枚舉元素的值:

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

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

枚舉變量的定義

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

2、定義枚舉類型的同時定義枚舉變量

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

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

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

實例

#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;
}

以上實例輸出結果為:

3

在C 語言中,枚舉類型是被當做 int 或者 unsigned int 類型來處理的,所以按照 C 語言規(guī)范是沒有辦法遍歷枚舉類型的。

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

以下實例使用 for 來遍歷枚舉的元素:

實例

#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);
    }
}

以上實例輸出結果為:

枚舉元素:1 

枚舉元素:2 

枚舉元素:3 

枚舉元素:4 

枚舉元素:5 

枚舉元素:6 

枚舉元素:7

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

enum
{
    ENUM_0,
    ENUM_10 = 10,
    ENUM_11
};

枚舉在 switch 中的使用:

實例

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

以上實例輸出結果為:

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

你喜歡的顏色是紅色

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

以下實例將整數(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;  //類型轉換
    //weekend = a; //錯誤
    printf("weekend:%d",weekend);
    return 0;
}

以上實例輸出結果為:

weekend:1

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

相關文章

  • 貪心算法 WOODEN STICKS 實例代碼

    貪心算法 WOODEN STICKS 實例代碼

    貪心算法 WOODEN STICKS 實例代碼,需要的朋友可以參考一下
    2013-05-05
  • 詳解Qt中的雙緩沖機制與實例應用

    詳解Qt中的雙緩沖機制與實例應用

    所謂雙緩沖機制,是指在繪制控件時,首先將要繪制的內容繪制在一個圖片中,再將圖片一次性地繪制到控件上。本文主要為大家介紹了Qt中的雙緩沖機制與實例應用,希望對大家有所幫助
    2023-03-03
  • C++?ffmpeg實現(xiàn)將視頻幀轉換成jpg或png等圖片

    C++?ffmpeg實現(xiàn)將視頻幀轉換成jpg或png等圖片

    有時播放實時流的時候有截圖的需求,需要將解碼出來的圖片保存本地或上傳服務器,這時就需要將avframe中的數(shù)據(jù)編碼成png、jpg等格式的圖片,我們使用ffmpeg的相關編碼器就可以實現(xiàn)功能,下面就來講講具體實現(xiàn)方法吧
    2023-03-03
  • C++高級數(shù)據(jù)結構之并查集

    C++高級數(shù)據(jù)結構之并查集

    這篇文章主要介紹了C高級數(shù)據(jù)結構之并查集,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • 簡單的漢諾塔問題解法代碼

    簡單的漢諾塔問題解法代碼

    漢諾塔本是C語言開門就學的東西,簡單的漢諾塔問題解法代碼
    2013-03-03
  • C語言實現(xiàn)通訊錄小項目

    C語言實現(xiàn)通訊錄小項目

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)通訊錄小項目,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • notepad介紹及插件cmake編譯過程(替代notepad++)

    notepad介紹及插件cmake編譯過程(替代notepad++)

    這篇文章主要介紹了notepad介紹及插件cmake編譯過程(替代notepad++),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • C++ 自定義控件的移植問題

    C++ 自定義控件的移植問題

    這篇文章主要介紹了C++ 自定義控件的移植問題,十分的簡單實用,有需要的小伙伴可以參考下。
    2015-06-06
  • C++中的常對象與常對象成員詳解

    C++中的常對象與常對象成員詳解

    常成員函數(shù)可以訪問常對象中的數(shù)據(jù)成員,但仍然不允許修改常對象中數(shù)據(jù)成員的值。有時在編程時有要求,一定要修改常對象成員中的某個數(shù)據(jù)成員的值(例如類中有一個用于計數(shù)的變量count,其值應當不能變化)
    2013-10-10
  • C++中new的越界訪問問題

    C++中new的越界訪問問題

    越界訪問指訪問了不是程序申請的內存區(qū)域,比如申請了5個字節(jié)的char數(shù)組,結果讀寫數(shù)據(jù)的第六個元素,或者訪問了釋放后的內存等等。
    2016-04-04

最新評論

柳林县| 吴川市| 泰州市| 加查县| 花莲县| 东阿县| 离岛区| 益阳市| 弥渡县| 黔东| 屯留县| 衡山县| 延庆县| 吉林市| 吉林市| 湖南省| 永川市| 乐昌市| 乌什县| 隆昌县| 鸡西市| 邯郸市| 连平县| 庆阳市| 登封市| 长顺县| 抚顺市| 保山市| 井研县| 兴业县| 石嘴山市| 长岛县| 沅江市| 崇左市| 许昌县| 兴宁市| 金门县| 徐汇区| 庆元县| 镇原县| 东台市|