C語言學習筆記7

2021-10-03 04:14:27 字數 1608 閱讀 1390

列舉

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 陣列名稱在計算機裡被當成數字使用,它就是陣列中第乙個變數的位址 陣列名稱不可以被賦值 陣列名稱加常數...