溫馨提示×

溫馨提示×

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

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

如何掌握C語言數(shù)據(jù)類型枚舉enum

發(fā)布時間:2021-10-22 17:32:51 來源:億速云 閱讀:95 作者:iii 欄目:開發(fā)技術

本篇內(nèi)容主要講解“如何掌握C語言數(shù)據(jù)類型枚舉enum”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何掌握C語言數(shù)據(jù)類型枚舉enum”吧!

    一、枚舉類型的定義

    enum Day//enum Day是一種類型
    {
    	Mon,//周一到周日這些叫枚舉的可能取值,也叫枚舉常量
    	Tue,
    	Wed,
    	Thur,
    	Fri,
    	Sat,
    	Sun,
    };

    上述代碼定義的enum Day是一種枚舉類型,{}中內(nèi)容是枚舉類型的可能取值,也可叫作枚舉常量。
    這些枚舉常量都是有值的,默認從0開始,依次往后遞增1,如果你愿意賦值也是可以的。

    代碼如下:

    #include<stdio.h>
    enum Color//enum Color是一種類型
    {
    	red,
    	green,
    	blue
    };
    int main()
    {
    	printf("%d\n", red);
    	printf("%d\n", green);
    	printf("%d\n", blue);
    }

    不賦初值打印0, 1,2

    如何掌握C語言數(shù)據(jù)類型枚舉enum

    #include<stdio.h>
    enum Color//enum Color是一種類型
    {
    	red=2,
    	green,
    	blue=6
    };
    int main()
    {
    	printf("%d\n", red);
    	printf("%d\n", green);
    	printf("%d\n", blue);
    }

    賦初值后打印初值內(nèi)容,如果你有一個沒有賦值,會緊接上一個賦值內(nèi)容+1
    這里green并沒有賦值,但我們知道red是2,按照枚舉規(guī)則,green會在red的基礎上加1變成3,注意,blue是有賦值的,所以blue不需要在green的基礎上加1,blue就是6

    如何掌握C語言數(shù)據(jù)類型枚舉enum

    注意:因為是枚舉{}內(nèi)的叫作枚舉常量,常量是不能改的,比如你在main函數(shù)里進行賦值操作,red=9;這個鐵鐵的會報錯,一定要區(qū)分枚舉初始化和賦值的區(qū)別。

    二、枚舉類型的使用

    2.1創(chuàng)建變量

    我們前面說過,enum Day、enum Color這種叫作枚舉類型,既然它是類型,它就可以創(chuàng)建變量,

    代碼如下:

    #include<stdio.h>
    enum Color//enum Color是一種類型
    {
    	red,
    	green,
    	blue
    };
    int main()
    {
    	enum Color a = 1;
    	enum Color b = green;
    }

    我們用枚舉類型創(chuàng)建了變量a和b,這里需要注意的是,把1賦給a,在c語言環(huán)境下編譯器不會報錯,但c++下就會出現(xiàn)問題,編譯器會認為1是一個整形,你賦給一個枚舉類型顯然是有問題的。所以我們這里最好把枚舉可能取值賦給枚舉變量。

    2.2一些優(yōu)點

    到這里大家可能會有一些疑惑,我們可以用#define來定義常量,為什么要用枚舉呢?我們來看一下它們的區(qū)別:

    代碼如下(示例):

    #define red 2
    #define green 4
    #define blue 8
    
    enum Color
    {
    	Red,
    	Green,
    	Blue
    };

    首先由2.1知,c++環(huán)境下,枚舉類型會對其他類型的賦值進行警告,而#define定義的常量是沒有類型的;

    第二就是防止命名污染,舉個栗子:#define red 2,這是全局范圍命名red為2,那假如你其他地方用到2這個數(shù)字,到時候到底是2本身還是red的意思?而枚舉定義的red是枚舉類型的一個可能取值,不會影響到其他數(shù)據(jù);

    第三,枚舉是可以調(diào)試的,調(diào)試的過程中你大可輸入枚舉類型創(chuàng)建的變量,但是#define red 2這種,red如果在代碼中會被自動替換為2,你無法用red進行監(jiān)視
    第四,就是可以一次定義多個枚舉常量

    到此,相信大家對“如何掌握C語言數(shù)據(jù)類型枚舉enum”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

    向AI問一下細節(jié)

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

    AI