一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C/C++ - 枚舉類型的定義和應用總結

枚舉類型的定義和應用總結

2021-01-07 14:39C語言教程網 C/C++

如果一種變量只有幾種可能的值,可以定義為枚舉類型。所謂“枚舉類型”是將變量的值一一列舉出來,變量的值只能在列舉出來的值的范圍內

定義:
如果一種變量只有幾種可能的值,可以定義為枚舉類型。所謂“枚舉類型”是將變量的值一一列舉出來,變量的值只能在列舉出來的值的范圍內。

聲明:
聲明枚舉類型用enum開頭,例如:

復制代碼 代碼如下:

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


上面聲明了一個枚舉類型weekday,花括號中的sun,mon,。。。。sat等稱為枚舉元素或枚舉常量。

這些枚舉常量,不會因為我們寫了sun就自動代表著“星期天”,它只是一個符號,究竟用來代表什么含義,完全卻決于程序員自己對它們的處理。


表示這個類型的變量的值只能是以上7個值之一,他們是用戶自己定義的標識符。

在聲明了枚舉類型之后,就可以用它開定義變量。如

復制代碼 代碼如下:

weekday workday,week_end;


這樣,workday和week_end被定義為枚舉類型weekday的變量。

說明:
(1)對枚舉元素按照常量處理,故稱為枚舉常量。它們不是變量,不能對他們賦值。

(2)枚舉元素作為常量,它們是有值的,C++編譯按定義時的順序對它們賦值為0,1,2,3,......

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
 enum weekday{sun,mon,tue,wed,thu,fri,sat};
 weekday one;
 one=sun;
 cout<<one;
 cout<<endl;
}


枚舉類型的定義和應用總結

我們也卡一在聲明枚舉類型時,另行指定枚舉元素的值,如

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
 enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat};
 weekday one,two;
 one=sun;
 two=wed;
 cout<<one<<endl;
 cout<<two<<endl;
 cout<<endl;
}


枚舉類型的定義和應用總結

指定sun為7,mon為1,以后按順序加1,sat為6。

(3)枚舉值可以用來做比較。

枚舉值的比較規則是按其在聲明枚舉類型時的順序號比較。如果定義時未人為指定,則第一個枚舉元素的值認作0.

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
 enum weekday{sun=7,mon=1,tue,wed,thu,fri,sat};
 weekday one,two;
 one=sun;
 two=wed;
        cout<<(sun>wed?sun:wed);
 cout<<endl;
}


枚舉類型的定義和應用總結

(4)一個整數不能直接賦給一個枚舉變量,應先進行強制類型轉換才能賦值。

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
 enum weekday{sun,mon,tue,wed,thu,fri,sat};
 weekday one;
 one=weekday(7);
 cout<<one;
 cout<<endl;
}


枚舉類型的定義和應用總結

以上的語句是將序號為2的枚舉元素賦給one。相當于

復制代碼 代碼如下:

 one=sun;


一個例子:
口袋中有紅、黃、藍、白、黑5種顏色的球若干。每次從口袋中任意取出3個球,問得到3中不同顏色的球的可能取法,輸出每種排列的情況。

分析:球的顏色只有5種,每一個球的顏色只能是這5種之一,因此可以用枚舉類型變量來處理。

復制代碼 代碼如下:

/*******
設某一次取出的顏色為i,j,k。顯然,i,j,k都是以上5中顏色之一,根據題意,
要求i,j,k三者互不相同。可以用窮舉法,對每一種可能分別進行測試,看那一組符合條件
*****/
#include<iostream>
using namespace std;
int main(){
   enum color{red,yellow,blue,white,black};
   color pri;
   int i,j,k,n=0,loop;
   for(i=red;i<=black;i++){
    for(j=red;j<=black;j++)
     if(i!=j){
      for(k=red;k<=black;k++){
       if(k!=i&&k!=j){
        n++;//使n累加,統計可能的抽取情況
        cout<<n<<"\t";
        for(loop=0;loop<3;loop++){//通過循環,輸出該次i,j,k所對應的顏色
         switch(loop){
          case 0:pri=color(i);break;
          case 1:pri=color(j);break;
          case 2:pri=color(k);break;
         }
         switch(pri){
          case red:   cout<<"red\t";break;
          case yellow:cout<<"yellow\t";break;
          case blue:  cout<<"blue\t";break;
          case white: cout<<"white\t";break;
          case black: cout<<"black\t";break;
         }
        }
        cout<<endl;
       }
      }
    }
   }
   cout<<"total:"<<n<<endl;
}


枚舉類型的定義和應用總結

延伸 · 閱讀

精彩推薦
  • C/C++C語言實現電腦關機程序

    C語言實現電腦關機程序

    這篇文章主要為大家詳細介紹了C語言實現電腦關機程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    xiaocaidayong8482021-08-20
  • C/C++學習C++編程的必備軟件

    學習C++編程的必備軟件

    本文給大家分享的是作者在學習使用C++進行編程的時候所用到的一些常用的軟件,這里推薦給大家...

    謝恩銘10102021-05-08
  • C/C++c++ 單線程實現同時監聽多個端口

    c++ 單線程實現同時監聽多個端口

    這篇文章主要介紹了c++ 單線程實現同時監聽多個端口的方法,幫助大家更好的理解和學習使用c++,感興趣的朋友可以了解下...

    源之緣11542021-10-27
  • C/C++詳解c語言中的 strcpy和strncpy字符串函數使用

    詳解c語言中的 strcpy和strncpy字符串函數使用

    strcpy 和strcnpy函數是字符串復制函數。接下來通過本文給大家介紹c語言中的strcpy和strncpy字符串函數使用,感興趣的朋友跟隨小編要求看看吧...

    spring-go5642021-07-02
  • C/C++深入理解goto語句的替代實現方式分析

    深入理解goto語句的替代實現方式分析

    本篇文章是對goto語句的替代實現方式進行了詳細的分析介紹,需要的朋友參考下...

    C語言教程網7342020-12-03
  • C/C++C++之重載 重定義與重寫用法詳解

    C++之重載 重定義與重寫用法詳解

    這篇文章主要介紹了C++之重載 重定義與重寫用法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下...

    青山的青6062022-01-04
  • C/C++C語言中炫酷的文件操作實例詳解

    C語言中炫酷的文件操作實例詳解

    內存中的數據都是暫時的,當程序結束時,它們都將丟失,為了永久性的保存大量的數據,C語言提供了對文件的操作,這篇文章主要給大家介紹了關于C語言中文件...

    針眼_6702022-01-24
  • C/C++C/C++經典實例之模擬計算器示例代碼

    C/C++經典實例之模擬計算器示例代碼

    最近在看到的一個需求,本以為比較簡單,但花了不少時間,所以下面這篇文章主要給大家介紹了關于C/C++經典實例之模擬計算器的相關資料,文中通過示...

    jia150610152021-06-07
主站蜘蛛池模板: 日韩欧美中文在线 | 欧美特黄三级在线观看 | 91久久国产露脸精品 | caoporn超碰| 草馏社区最新1024 | 男人叼女人的痛爽视频免费 | 高清不卡一区 | 国产精品密播放国产免费看 | 色播艾小青国产专区在线播放 | 亚洲国产欧美另类 | 欧美一级高清片免费一级 | 欧美日韩国产成人综合在线 | 亚洲国产精品综合久久网络 | 久久久精品成人免费看 | 第一福利在线观看永久视频 | 四虎e234hcom| 成人私人影院在线版 | 波多野结衣178部中文字幕 | 精品女同一区二区三区免费站 | 91短视频版高清在线观看免费 | 高清在线免费观看 | 欧美性黑人巨大gaysex | 色鬼网| 深夜福利在线播放 | 美女插插视频 | 美女免费观看一区二区三区 | 亚洲精品卡一卡2卡3卡4卡 | 日本国产一区二区三区 | 4444www免费看 | 2021国产精品视频一区 | 欧美精品黑人巨大在线播放 | 调教女秘书 | 亚洲AV无码一区二区三区乱子伦 | 五月天色小说 | 精品国产一区二区 | 男男18视频免费网站 | 美女林柏欣21p人体之仓之梦 | 欧美人xxxxxbbbb| 四虎国产精品视频免费看 | 日本强不卡在线观看 | 四虎影视库永久在线地址 |