當前位置:成語大全網 - 書法字典 - 什麽是枚舉?

什麽是枚舉?

枚舉是C/C++中整數常量的命名集合,在日常生活中非常常見。例如,星期日、星期壹、星期二、星期三、星期四、星期五、星期六是枚舉。枚舉的描述類似於structure和union,其形式為:enum枚舉名稱{ identifier【= integer constant】,identifier【= integer constant】,...identifier【=整數常數】}枚舉變量;如果枚舉未初始化,即省略“=整數常量”,則標識符0,1,2,...但是,當枚舉中的某個成員被賦值時,後續成員將按照1的規則依次相加來確定其值。例如,在以下枚舉之後,x1、x2、x3、x4和x4的值分別為0、1、2和3。枚舉編號{x1,x2,x3,x4}x。當定義更改為:enumnum {x1,x2 = 0,x3 = 50,x4 } x;那麽x1 = 0,x2 = 0,x3 = 50,x4 = 51註:1。枚舉中每個成員(標識符)的終止符是“,”,而不是“;”最後壹個成員可以省略“,”。2.您可以在初始化時分配壹個負數,以後的標識符仍將依次添加1。3.枚舉變量在枚舉描述結構中只能接受壹個標識符常量。例如:enum Num {x1=5,x2,x3,x4 };枚舉字符串x = x3此時,枚舉變量x實際上是7。枚舉類型變量的賦值和枚舉類型的使用在使用中有以下規定:1。枚舉值是常數,不是變量。妳不能在程序中用賦值語句給它賦值。例如,對枚舉weekday的元素進行以下賦值:sun = 5;mon = 2;sun = mon都是錯的。2.枚舉元素本身由系統用表示序列號的數值來定義,序列號定義為0,1,2…從0開始。例如,在工作日,sun值為0,mon值為1,…,sat值為6。main(){ enum weekday {星期日、星期壹、星期二、星期三、星期四、星期五、星期六} a、b、c;a =太陽;b = monc = tueprintf(“%d、%d、% d“,a、b、c);} 3.枚舉值只能賦給枚舉變量,元素的數值不能直接賦給枚舉變量。如:a = sumb = mon是正確的。並且:a = 0;b = 1;是錯誤的。如果必須將數值賦給枚舉變量,則必須使用強制類型轉換,例如:a =(enum weekday)2;其意義在於將序號為2的枚舉元素賦予枚舉變量A,相當於:a = tue還應註意,枚舉元素不是字符常量或字符串常量,因此在使用它們時不要添加單引號或雙引號。main(){枚舉主體{ a,b,c,d } month【31】,j;int I;j = a;for(I = 1;我& lt=30;i++){ month = j;j++;if(j & gt;d)j = a;} for(I = 1;我& lt=30;i++){ switch(month){ case a:printf(“% 2d % c \ t“,I,‘a‘);打破;情況b:printf(“% 2d % c \ t“,I,‘b“);打破;情況c:printf(“% 2d % c \ t“,I,‘c’);打破;情況d:printf(“% 2d % c \ t“,I,‘d“);打破;默認值:break} } printf(“\ n“)} 10個數字,並任意取出五個不相等的數字。誰能記得javascript中這個算法的公式有什麽好的計算方法?m n *(n-1)* *...*(n-m+1)n!c =-=-n m *(m-1)*(m-2)*...*3*2*1米!*(n-m)!這是壹個公式,但對枚舉影響不大,仍然需要遍歷循環。這需要壹個好的算法。