枚舉是一種用戶定義的數(shù)據(jù)類型,關(guān)鍵字是 enum,語法是: enum 枚舉類型名字{名字0, … , 名字n};
枚舉類型名字 通常并不真的使用,用的是 大括號(hào)里邊的名字(它們是常量符號(hào),類型是 int,值依次是 0 到 n-1)
enum colors{red, yellow, green};創(chuàng)建了3個(gè)變量,red的值是0,yellow的值是1,green的值是2當(dāng)需要一些可以排列起來的常量值時(shí),定義枚舉的意義就是給這些常量值起個(gè)名字#include<stdio.h>enum COLOR { RED, BLUE, GREEN};int main(int argc, char const *argv[]){ 2.自動(dòng)計(jì)數(shù)的枚舉#include<stdio.h>enum COLOR{ RED, YELLOW, GREEN, ColorNums};int main(int argc, const char *argv[]){ int color = -1; // 枚舉量與數(shù)組下標(biāo)一一對(duì)應(yīng) char *colorNames[ColorNums] = { "red", "yellow", "green" }; char *colorName = NULL; printf("請(qǐng)出入顏色代碼:"); scanf("%d", &color); if(color >= 0 && color < ColorNums){ colorName = colorNames[color]; // 輸入0, 輸出 red } else { colorName = "unknown"; } printf("你輸入的顏色是:%s/n", colorName); return 0;}枚舉量可以作為值 enum 枚舉類型 可以作為類型 實(shí)際上內(nèi)部計(jì)算和外部輸入輸出時(shí) 都是 整數(shù)
#include<stdio.h>enum color { red, yellow, green};void f(enum color c);int main(int argc, char const *argv[]){ enum color c = red; printf("請(qǐng)輸入一個(gè)顏色:"); scanf("%d", &c); f(c); return 0;} void f(enum color c){ // 打印輸入的數(shù)字,輸入 0 輸出 0。輸入 5,輸出 5 printf("%d/n", c);}#include<stdio.h>enum COLOR { RED = 1, YELLOW, GREEN = 5, ColorNums};int main(int argc, const char *argv){ enum COLOR color = RED; printf("code for YELLOW is %d/n", YELLOW); // code for YELLOW is 2 printf("color is %d/n", color); // color is 1 printf("ColorNums is %d/n", ColorNums); // ColorNums is 6 return 0; }新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注