列舉
1.什麼是列舉
把乙個事物所以可能的取值一一枚舉出來
2.怎麼使用列舉
使用列舉型別對變數進行宣告
新的資料型別定義完成後,它就可以使用了。我們已經見過最基本的資料型別,如:整型int, 單精度浮點型float, 雙精度浮點型double, 字元型char, 短整型short等等。用這些基本資料型別宣告變數通常是這樣:
既然列舉也是一種資料型別,那麼它和基本資料型別一樣也可以對變數進行宣告。
方法一:列舉型別的定義和變數的宣告分開
方法二:型別定義與變數宣告同時進行:
方法三:用typedef關鍵字將列舉型別定義成別名,並利用該別名進行變數宣告:
注意:同乙個程式中不能定義同名的列舉型別,不同的列舉型別中也不能存在同名的命名常量。錯誤示例如下所示:
錯誤宣告一:存在同名的列舉型別
錯誤宣告二:存在同名的列舉成員
使用列舉型別的變數
對列舉型的變數賦值。
例項將列舉型別的賦值與基本資料型別的賦值進行了對比:
方法一:先宣告變數,再對變數賦值
方法二:宣告變數的同時賦初值
方法三:定義型別的同時宣告變數,然後對變數賦值。
方法四:型別定義,變數宣告,賦初值同時進行。
3.列舉的優缺點
**更安全
書寫麻煩
補碼計算機中char int long等整型和字元型資料都是按照補碼方式儲存的,資料的補碼嚴格按照原碼—>反碼—>補碼的方式轉化。整數的反碼補碼都與原碼一樣,負數的反碼,是原碼保持符號位不變,其他取反,反碼加一為補碼,溢位的資料則需要去掉最左邊,最終補碼的位元組長度就是資料型別的長度。
11000 0000(原始碼) — 10111 1111(取反) — 11000 0000(加一) — 80(1000 0000)(去左端溢位資料,補碼)
-127;// 1111 1111(原始碼) — 1000 0000(取反) — 1000 0001(加一) — 81(補碼)
-0;// 1000 0000 — 1111 1111 — 10000 0000 — 00
128;// 01000 0000 — 01000 0000 — 80(1000 0000)(去溢位資料,補碼)
鍊錶1.演算法:
通俗定義:
解題的方法和步驟
狹義定義:
對儲存資料的操作
廣義定義:
廣義的演算法也叫泛型
無論資料是如何儲存的,對該資料的操作都是一樣的
我們至少可以通過兩種結構來儲存資料
2.陣列
優點:訪問速度快
缺點:需要連續的很大的記憶體
插入和刪除元素的效率很低
3.鍊錶
專業術語:
首節點:
存放第乙個有效資料的節點
尾結點存放最後乙個有效資料的節點
頭結點頭結點的資料型別和首節點的型別一模一樣的
頭結點是首節點前面的那個節點
頭結點並不存放有效資料
設定頭結點的目的是為了方便對鍊錶的操作
頭指標存放頭結點位址的指標變數
確定乙個鍊錶需要乙個引數
優點:插入刪除元素效率高
不需要乙個連續的很大的記憶體
缺點:查詢某個位置的元素效率低
C語言學習筆記 7
1 根據輸入的分數求等級 注意邏輯運算子的處理,c語言中真用1表示,假用0表示 2 三個數排序 include include int main void int a,b,c,t printf 請輸入三個數,以空格隔開 scanf d d d a,b,c if a素數 在所有的非零自然數中,除1和自...
c語言學習筆記7
if語句在 c語言中是經常會用到的語句,也可以算是一種基本語句,在學習過程中我們應該努力學習好每一種語句用法,if語句算是 c語言入門 語句的一種,學習時間長了各種語句會運用的更加熟練。1 if 表示式 語句 其語義是 如果表示式的值為真,則執行其後的語句,否則不執行該語句。其過程可表示為下圖。例子...
C語言學習筆記7
回顧 1.迴圈巢狀 2.while,do.while迴圈 3.隨機數 4.陣列 作業 1.彩票作業 2.身份證作業 陣列可以在宣告的時候初始化 初始化的時候沒有提供初始化資料的變數會被自動初始化成0 陣列名稱在計算機裡被當成數字使用,它就是陣列中第乙個變數的位址 陣列名稱不可以被賦值 陣列名稱加常數...