-
您的程式沒有問題,此錯誤是因為您選擇了錯誤的專案型別。 在建立乙個新專案時,你應該選擇建立乙個控制台程式,即 win32 控制台應用程式,你可以選擇 win32 應用程式或 mfc 程式。
這是因為 Windows GUI 程式的入口點是 WinMain,而不是 Main。 如果無法建立 GUI 程式,則程式條目是 main,則它必須是控制台程式。
-
我沒有發現 VC6 有任何問題。 你使用什麼編譯器? 將 main 的返回型別更改為 int 並新增返回 1; 試試吧。
-
我嘗試了這個程式,在我的機器上編譯和除錯它沒有問題。
-
我編譯,執行,顯示 0,然後退出。
有問題嗎?
-
如果乙個變數只有幾個可能的值,則可以將其定義為列舉型別。所謂“列舉”,是指對變數的值逐個列舉,變數的值僅限於所列值的範圍。
宣告列舉型別從列舉開始。 例如:
宣告了乙個列舉工作日,可用於定義變數。 例如:
也可以直接定義列舉變數,例如:
其中,sun、mon 、...,SAT叫列舉元素或列舉常量
注意: 1. 在 C 編譯中,列舉的元素被視為常量,因此稱為列舉常量。它們不是變數,不能賦值。 例如,sun = 7; mon = 1;是錯誤的。
2. 將元素列舉為常量具有價值。 C 按照定義它們的順序編譯它們,因此它們的值為 ......還可以在定義時指定列舉元素的值,例如:
3.列舉值可用於判斷和比較。 例如:
4. 證書不能直接分配給列舉變數。 例如,workday=1; 是錯誤的。 缺乏論據,它們屬於同一型別。 在分配值之前,應先進行強制型別轉換。 例如:
它等效於將序號為 2 的列舉元素分配給 workday,這相當於。
-
enum colour colour_t;
顏色 t 的值可以等於寬、紅色、綠色或藍色的任何乙個冰雹。
typedef enum colour colour_t;
colour_t col;
col 的值可以等於紅色、綠色或藍色中的任何乙個。
注意:如果未分配紅色、綠色和藍色,則預設值為 red=0、green=1 和 blue=2;
-
C 列舉型別使用如下:
1) 列舉是集合中元素(列舉成員)的集合,這些元素被命名為整數常量,用逗號分隔。
2)day是乙個識別符號,可以看作是集合的名稱,是乙個可選專案,即乙個可有可無的專案。
3)第乙個列舉成員的預設值為整數的0,後續列舉成員的值與前乙個成員相加1。如果沒有對當前值的賦值,列舉型別的當前值始終是以前的值 +1
4)可以人為設定列舉成員的值,自定義一定範圍內的整數。
5) 列舉型別是預處理指令定義的替代方法。
6)型別用分號定義;結束。
enum 是 C 語言中的乙個關鍵字,enum 叫做列舉資料型別,列舉資料型別描述的是一組整數值(這句話其實不合適),列舉是預處理指令定義的替代,列舉和巨集其實很像,巨集在預處理階段要用相應的值替換名稱, 列舉,將名稱替換為相應的值。
我們可以在編譯階段將列舉理解為巨集,使用以下格式:
enum typename ;
typename 是列舉型別的名稱,大括號中的元素(列舉成員)是常量而不是變數,這一點必須明確,因為列舉成員是常量,所以不能賦值,只能賦值給其他變數。
列舉是 C 語言中的一種基本資料型別,它使資料更簡潔、更易於閱讀。
-
之所以可以使用 foreach 語句遍歷 C 語言中的陣列和列表等空腔物件,是因為這些物件是可列舉型別,這些可列舉型別可以獲取列舉器,列舉器可以自動獲取物件中的每個元素。
什麼是可列舉型別?
在 IENUMERABLE 中實現 getenumerator 方法的型別是 enumerable 型別,該型別從方法的名稱中可以知道,用於獲取列舉器,列舉器包含有關集合中元素的資訊。
什麼是旅鎮公升降機?
IENUMERATOR 介面的實現是乙個列舉器,它依次返回集合中的元素,具有乙個屬性和兩個方法:
current,這是乙個唯讀物件型別屬性,可以返回任何型別,用於獲取集合中的當前元素。 劈開,圓而厚。
movenext,這是一種將列舉編號推送到集合的下乙個元素的方法,如果它已經是最後一項,則返回 false。
reset,這是一種將列舉數設定為其初始位置的方法,該位置位於集合中的第乙個元素之前。
如果自定義類實現了可列舉型別介面和列舉器介面,則可以使用 foreach 語句遍歷它。
實現可列舉型別
實現列舉器
使用 foreach 語句進行遍歷。
上面用到的列舉型別介面和列舉器介面都是非泛型版本,ienumerable和ienumerator的泛型版本在C語言中用得比較多,使用方法也差不多,但還是有一些區別。
-
在實際程式設計中,有些資料的值往往是有限的,只有極少數的整數,最好給每個值起個名字,方便後續使用,比如一周只有七天,一年只有十二個月,一班一班每週六門課, 等。
例如,一周 7 天,我們可以使用 define 命令為每一天指定乙個名稱:
define 命令雖然解決了這個問題,但也帶來了很多 ***,導致巨集名太多,** 鬆散,總是有點讓人看不上來。 C 語言提供了乙個列舉型別列出所有可能的值並為其命名。
enum 是乙個專門用於定義列舉型別的新關鍵字,這是它在 C 語言中的唯一用途; typename 是列舉型別的名稱; valuename1, valuename2, valuename3, .是與每個值對應的名稱的列表。 注意最後; 不少。
例如,列出一周中的幾天:
如您所見,我們只給出名稱,但不給出名稱對應的值,因為列舉值預設從 0 開始,逐個新增 1(遞增); 也就是說,星期一,星期二。sun 的對應值分別為 .。6。
我們還可以為每個名稱分配乙個值:
一種更簡單的方法是僅為名字指定乙個值:
此列舉以 1 為增量開始,這相當於上面的寫入。
列舉是一種型別,您可以通過它來定義列舉變數:
還可以在定義列舉型別的同時定義變數:
使用列舉變數,可以將列表中的值分配給它:
或者:星期一、星期二、星期三用他們的數字代替。 這意味著mon、tues、wed等都不是變數,它們不占用資料區(常量區、全域性資料區、堆疊區、堆區)的記憶體,而是直接編譯到命令中並放入**區,所以不能用&來獲取它們的位址。
這就是列舉的本質。
列舉變數需要儲存乙個整數,該整數的長度與 int 相同。
arr[i]=i;通過for迴圈將arr的值從0賦值到9,然後arr[i]的值不變,執行下乙個for迴圈,k的值仍為0 ha,不變。 >>>More
標準規定int型別必須為16位以上,long型別必須為32位,在之前的16位機器中,這兩個資料分別是16位和32位,但是進入x86時代後,實際上都是32位,int型別一般和處理器的位數相同, 表示兩個記憶體的定址空間。 >>>More